LINUX.ORG.RU

PostgreSQL 9.3

 


0

2

Вышла новая версия СУБД PostgreSQL — 9.3.

В этой версии:

  • Запись в внешние таблицы. Предыдущие версии PostgreSQL позволяли подключать к базе различные внешние источники данных, в том числе Oracle, MySQL, Redis, LDAP и многие другие. В этой версии добавилась возможность записи в такие «внешние» таблицы. Модуль postgres-fdw, предназначенный для подключения других баз PostgreSQL (базовые функции доступны с 8.1, а полная поддержка всех функций требует 8.3), также поддерживает расчет плана выполения запроса и ограниченную поддержку транзакций.
  • Улучшения надежности и доступности:
    • Опциональная проверка контрольных сумм на читаемых страничках для определения аппаратных сбоев.
    • Быстрое переключение с master на slave при сбое master'а, возможность переключения slave в master в режиме streaming-репликации.
  • Расширения PostgreSQL теперь могут запускать собственные процессы внутри сервера. Предполагается, что эта возможность будет использоваться для создания обработчиков очередей запросов, поддержки выполнения параллельных запросов, планировщиков, альтернативных протоколов и др.
  • Расширены функции для работы с JSON.
  • Материализованные и обновляемые VIEW, упрощенный синтаксис для создания рекурсивных VIEW.
  • Параллельный pg_dump.
  • Отказ от использования разделяемой памяти SysV в пользу posix версии и mmap.
  • В расширении pg_trgm добавлена возможность использования индекса при поиске по регулярным выражениям (в случаях когда из регулярного выражения удается извлечь необходимые для его срабатывания триграммы).
  • Раздельные блокировки для изменения ключевых и неключевых полей таблиц. Благодаря этому повышена производительность и заметно снизилась вероятность возникновения deadlock'ов при параллельном выполнении комплексных транзакций с использованием внешних ключей.

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

★★★★★

Последнее исправление: maxcom (всего исправлений: 15)
Ответ на: комментарий от Virus

Для новичков — MySQL намного проще ставится и тюнится. Да и не только новичков — я, вот, так и не научился тюнить Postrge, он у меня на всех тестах тормознее, чем MySQL.

Для тех, кто поопытнее — у MySQL шире возможности репликации, включая мастер-мастер репликацию, удобнее модификации таблиц (насколько я помню, у Постгре можно добавлять новые столбцы только в конец таблицы и нельзя менять их местами), есть выбор из нескольких движков…

Плюс масса стороннего кода, заточенного под MySQL и не понимающего Postrge. Плюс из-за упомянутой выше с большей трудностью установки Postgre преобладание дешёвых хостингов с MySQL и т.п.

Так в сумме и набегает.

(Если кто не понял, я не утверждаю, что MySQL лучше :) )

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

насколько я помню, mysql при репликации не делает проверок, и метит транзакцию как прошедшую успешно если смог ее отослать на другой хост. pgsql имеет возможность метить транзакции как успешные после получение подтверждения об их получении, что намного надежнее

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

Интересно чтобы кто-то подтвердил/опроверг ваше утверждение относительно mysql и производных (percona, mariadb).

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

насколько я помню, mysql

Я же специально отметил — я не утверждаю, что MySQL лучше :) Я пишу, почему он популярнее. Естественно, есть не меньший список того, в чём лучше PostrgeSQL. Но эти фишки мало востребованы рынком.

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

у MySQL шире возможности репликации, включая мастер-мастер репликацию

нет там мастер-мастер препликации, есть только костыль похожий на неё.

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

нет там мастер-мастер препликации

Странно, что я практикую то, чего нет :)

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

репликация не востребована рынком? ну-ну...

Востребована. В т.ч. мастер-мастер :) Что с этим под Postrge? Как реализовать репликацию по кольцу, чтобы внесённые на любой ноде изменения оказывались на всех других нодах?

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

Нашёл. Триггеры, собственная БД, периодический опрос… Оверхед же. А что делать, если потребуется принудительно засинхронизировать базы?

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

насколько я помню, у Постгре можно добавлять новые столбцы только в конец таблицы и нельзя менять их местами

А не пофиг ли на реальный порядок столбцов в таблице, если в запросах на них можно ссылаться в любом порядке? :)

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

у MySQL шире возможности репликации, включая мастер-мастер репликацию

года полтора назад на девконф гура репликации мускля рассказывал про то, что ни в одной из его реализаций нормально работающего механизма так и нет. С тех пор что изменилось?

насколько я помню, у Постгре можно добавлять новые столбцы только в конец таблицы и нельзя менять их местами

Неудобно только тем, кто не осиливает в insert первым параметром указать собственно именования колонок в том порядке, в каком потом перечислены значения

Плюс масса стороннего кода, заточенного под MySQL и не понимающего Postrge

Да, например, Kohana. Этим ушлепкам кто-то даже патч дал с начальной реализацией Postgres, но нет же, «мы есть поддерживайт нихт датабейз ohne дас мисукэл»

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

Неудобно только тем, кто не осиливает в insert первым параметром указать собственно именования колонок в том порядке, в каком потом перечислены значения

есть ещё вопрос оптимизации. Иногда перестроением (физического) порядка можно увеличить производительность.

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

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

Да там ведь вообще все по другому. Там ведь версионность

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

Иногда перестроением (физического) порядка можно увеличить производительность.

Это данные по постгресу или костыли исключительно для дурного планировщика мускля?

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

Это данные по постгресу или костыли исключительно для дурного планировщика мускля?

практически для любой традиционной реляционной СУБД, которые хранят данные записями, планировщик тут ничего исправить не может. Но хз что делает mysql - меняет только порядок отображения или ещё физически перестраивает записи.

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

что делает mysql - меняет только порядок отображения

this. Иначе бы ALTER TABLE занимал месяцы на таблицах в пару сотен миллионов строк

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

Востребована. В т.ч. мастер-мастер :) Что с этим под Postrge? Как реализовать репликацию по кольцу, чтобы внесённые на любой ноде изменения оказывались на всех других нодах?

Штатными средствами, без костылей. То, что в MySQL симулирует работу, в PostgreSQL спокойно пишут чтобы работало как надо. Оттюнить PostgreSQL он не осилил, DBA такая, посмотрите вы на неё!

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

я не копался в этом настолько, но думаю что решение можно найти в любом случае

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

все равно это непорядок и потенциальный крах

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

Типичный ответ быдлокодера. Аватарка доставила.

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

мастер-мастер - Postgre-XC. Это почти 1 в 1 то что у Мускуля.

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