LINUX.ORG.RU

UPSERT и не только. Что ждать от PostgreSQL 9.5?

 


6

6

2 июля вышла PostgreSQL 9.5 alpha. Среди основных улучшений можно отметить:

  • BRIN-индексы («индексы блоковых зон»), позволяющие сверхкомпактно индексировать очень большие таблицы.
  • Существенные оптимизации скорости сортировки и хэширования в памяти.
  • Автоматизированное управление размером лога транзакций.
  • INSERT ... ON CONFLICT UPDATE, также известный как «UPSERT».
  • Аналитические функции CUBE и ROLLUP.
  • Безопасность строкового уровня (Row-Level Security, RLS).
  • Новые манипуляционные возможности (функции и операторы) для типа данных JSONB.
  • Инструмент pg_rewind и другие улучшения репликации и средств повышения отказоустойчивости.
  • Множественные улучшения в механизм Foreign Data Wrappers, включая IMPORT FOREIGN SCHEMA.
  • Существенные улучшения масштабирования на системах с большим количеством процессорных ядер и оперативной памяти.

Статья «UPSERT и не только. Что ждать от PostgreSQL 9.5?» расскажет о некоторых новинках подробнее.

>>> Скачиваем

>>> What's New (англ.)

>>> Подробности

Безопасность строкового уровня (Row-Level Security, RLS).

Таки допилили. Респект!!!

anonymous ()

Самая вменяемая БД. Шлак наподобе MySQL и рядом с ней не стоял.

FilosofeM ()
Ответ на: комментарий от anonymous

А чо, допилить предикаты и прикрутить view с триггерами поверх было некошерно?

no-dashi ★★★★★ ()

INSERT ON CONFLICT UPDATE

Чего-чего? А может таки UPDATE ON CONFLICT INSERT? ил я чего-то не понимаю?

d9d9 ★★★ ()
Ответ на: комментарий от Gudvin-t

Если запись с таким же ключом есть - обновляет поля. Если нет - добавляет.

Ну так понятно, но в теме написано через наоборот.

Все, дошло. Это кусок sql, в котором пропущен placeholder. Должно было быть: «INSERT ... ON CONFLICT UPDATE».

d9d9 ★★★ ()
Последнее исправление: d9d9 (всего исправлений: 1)

Пацаны, недавно начал прогать, собираюсь еще базы данных. С чего начать? Как насчет MariaDB? Я слышал что MySQL стал оракловским говном, и надо юзать MariaDB, ну еще и развивается она гораздо быстрее.

anonymous ()
Ответ на: комментарий от anonymous

По умолчанию используй PostgreSQL. MySQL только если к этому есть какие-то серьёзные основания. MariaDB это то же самое, что и MySQL.

Legioner ★★★★★ ()
Ответ на: комментарий от anonymous

Между дрочим прогресс это советская бд теперь. Путин одобрил.

ppy ★★ ()
Ответ на: комментарий от no-dashi

А чо, допилить предикаты и прикрутить view с триггерами поверх было некошерно?

Это работает не для всех случаев и вызывает много трудностей.

anonymous ()
Ответ на: комментарий от FilosofeM

Самая вменяемая БД.

Я смотрю, почти все тут любят применять слово «вменяемый». :-)

anonymous ()
Ответ на: комментарий от cherry-pick

зато специалиста найти легче, чем на этот ваш потсрег

zenden ()
Ответ на: комментарий от zenden

зато специалиста найти легче, чем на этот ваш потсрег

Лошару найти проще, а не специалиста. Специалист по БД будет хорошо разбираться в теории БД, в SQL, в MVCC и, будь уверен, он будет знаком с Постгресом, если он специалист, а не лошара. :-)

anonymous ()
Ответ на: комментарий от zenden

хз мне и mysql хватает

В таком случае может быть есть смысл взять SQLite3. Несмотря на кажущуюся простоту он очень крутой.

anonymous ()

Функции для JSONB это интересно, хотя пока таки не тороплюсь его использовать.

ritsufag ★★★★★ ()
Ответ на: комментарий от post-factum

Если добавить в сравнение тот-же постгрес (или любую другую РСУБД) различия марии и мускуля станут неразличимы.

MrClon ★★★★★ ()
Ответ на: комментарий от vladzzag

сравнивает NoSQL и SQL так, как будто они для одних и тех же задач предназначены.

Зачем вот так делать, а? MongoDB будешь юзать там, где данные в реляционную модель не вписываются, зачем ты его постгресу противопоставляешь, если у них задачи разные?

cherry-pick ()
Ответ на: комментарий от cherry-pick

MySQL recommends UTF-8 as a character-set, but still defaults to Latin-1.

Автор использует UTF-8 символы, но при этом не ставит кодировку в Meta-теге (у меня, например, выбирается Cyrillic/DOS). Какая ирония... [я не отрицаю пункты критики от автора статьи, но просто забавно]

X-Pilot ★★★★★ ()
Ответ на: комментарий от ppy

Между дрочим прогресс это советская бд теперь. Путин одобрил.

Я смотрю у некоторых СУБД постгрес своей прогрессивностью вызывает просто сексуальный экстаз…

anonymous ()
Ответ на: комментарий от X-Pilot

Автор использует UTF-8 символы, но при этом не ставит кодировку в Meta-теге

И совершенно правильно делает

anonymous ()

1) Ну вот почему, почему нельзя следовать стандартам? Вот чем луче INSERT ... ON CONFLICT UPDATE стандартного MERGE?

2) И просто ради любопытства, когда нибуль они запилят в open версии пакеты или нет?

s79 ()

хочу задачи :( поковырять бы postgresql, но задач то нет! а если переписать блог на использование pgsql, то вряд ли какие-то вкусные плюшки будут использованы.

Spoofing ★★★★★ ()
Ответ на: комментарий от Spoofing

Твоя задача - сторожить. Вот и сторожи.

anonymous ()
Ответ на: комментарий от s79

Про пакеты - это вообще больная тема, мне плохо становится когда я вижу 200 ХП, которые никак не структурированы.

nt_crasher ★★★ ()
Ответ на: комментарий от nt_crasher

мне плохо становится когда я вижу 200 ХП, которые никак не структурированы

В процитированном фрагменте, всё что после запятой - лишнее.

P.S.: ораклист?

no-dashi ★★★★★ ()

Почему-то не включили в статью информацию про улучшение алгоритма LWLock

За счет сабжа pg стал линейно масштабироваться на многоядерных машинах до 120 ядер. На скриншоте результаты тестирования на SuperDomeX, масштаб 1"CPU" = 15 ядер или 30 с включенным ht: http://i62.tinypic.com/6713bp.jpg

vadv ()
Ответ на: комментарий от vladzzag

Ненужно.. MongoDB круче :)

эта перделка научилась выдавать 500k tp/s на одной машине?
этой перделке уже доверяют расчет зарплаты?

vadv ()
Ответ на: комментарий от no-dashi

да, но оракл хотя бы дает возможность все это сложить в пакет, а вот про другие СУБД не в курсе.

nt_crasher ★★★ ()
Ответ на: комментарий от ppy

Между дрочим прогресс это советская бд теперь. Путин одобрил.

нихера не одобрил, разговоров вокруг этого больше чем дела. попилят, уверен что попилят и достанется не более 10% того, чего хотели вложить.

vadv ()
Ответ на: комментарий от zenden

зато специалиста найти легче, чем на этот ваш потсрег

Помнится мне, что в Postgres практически «чистый sql» (в смысле стандарт), в отличие от mysql. По крайней мере так было раньше.

anonymous ()
Ответ на: комментарий от vadv

500k tp/s на одной машине

Используя НЖМД, снятый с корабля пришельцев из будущего?

makoven ★★★★★ ()
Ответ на: комментарий от post-factum

При сравнении пар «MySQL и MariaDB» и «MySQL и любая-РСУБД-неооснованная-на-коде-MySQL» различия в первой паре будут много меньше чем во второй.

MrClon ★★★★★ ()
Ответ на: комментарий от FilosofeM

Шлак наподобе MySQL и рядом с ней не стоял.

Ты-то хотя бы что-нибудь наподобие MySQL написал, эксперт по шлаку? У него (точнее, теперь уже у MariaDB) есть своя область применения - небольшие БД для сайтов.

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

И чем MySQL лучше чем PostgreSQL в качестве небольших БД для сайтов?

O02eg ★★★★★ ()
Ответ на: комментарий от anonymous

В таком случае может быть есть смысл взять SQLite3.

Как бы это инструмент, предназначенный немного для другого. MySQL и PostgreSQL - сервера БД, SQLite3 - библиотека доступа к данным, предоставляющая синтаксис SQL. Я в своё время делал программы, работавшие как в локальном (SQLite+выгрузка в XML), так и в клиент-серверном (PostgreSQL) вариантах. Переключение в 99% случаев решалось заменой кутешного драйвера, только для очень редких запросов пришлось по два варианта написать.

hobbit ★★★★★ ()
Ответ на: комментарий от O02eg

Легковесность?

// Но вообще-то я не настаиваю категорично на «лучше», меня просто задело, что человек мимоходом взял и обозвал шлаком полезный инструмент, притом сомнительно, что он сам представляет трудоёмкость написания таких инструментов.

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от O02eg

Возможно - если условиться, что БД на том же хосте, что и сайт.

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

Может я что-то не догоняю?

# pacm mariadb
Packages (4) jemalloc-3.6.0-1  libmariadbclient-10.0.20-1
             mariadb-clients-10.0.20-1  mariadb-10.0.20-1
Total Download Size:    18.12 MiB
Total Installed Size:  157.32 MiB
# pacm postgresql
Packages (2) postgresql-libs-9.4.4-2  postgresql-9.4.4-2
Total Download Size:    5.94 MiB
Total Installed Size:  28.32 MiB
makoven ★★★★★ ()
Ответ на: комментарий от makoven

Хм... интересная инфа.

А для корректности сравнения никакой postgresql-client не надо ещё доставить? В дебиане такой присутствует, по крайней мере. И доки на постгре там отдельным пакетом...

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от EnterpriseMobility

Мы как раз от Оракла отказываемся в пользу LevelDB.

Отлично, например

vmx ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.