Переходя от mysql к postgresql, лучшие функции, которые мне не хватало? - PullRequest
8 голосов
/ 17 февраля 2011

Раньше я все разрабатывал с помощью mysql, на этой неделе появилась возможность работать с postgresql, почему бы и нет!

Мне всегда говорили, что у postgresql гораздо больше функций.
Я читал некоторые вики, но большая часть информации действительно устарела.

Какие лучшие функции мне не хватало?Как частичные индексы и т.д ..
Кроме того, я что-то упущу из MySQL?

Ответы [ 5 ]

18 голосов
/ 17 февраля 2011
7 голосов
/ 17 февраля 2011

В дополнение к списку Майкла (из которого мне больше всего нравятся оконные функции)

  • проверка ограничений
  • табличные функции (функции, которые можно использовать вот так select * from my_func(42)
  • частичный индекс (CREATE INDEX idx1 ON some_table (some_column) WHERE some_flag = true)
  • деление на ноль является ошибкой
  • delete from some_table where 42 считается ошибкой и не удаляет всю таблицу
  • вы можете иметь подзапрос в ОБНОВЛЕНИИ или УДАЛИТЬ, который выбирает из той же таблицы, что и обновляемый
  • гораздо умнее оптимизатор запросов
  • отложенные ограничения (редко используются, но когда они вам нужны, онидействительно полезны)
  • внешние ключи оцениваются для всего оператора, а не для строки за строкой
  • полнотекстовый поиск и пространственные расширения для транзакционных таблиц
  • EXCEPT
7 голосов
/ 17 февраля 2011

И не забудьте DDL, он также безопасен для транзакций:

BEGIN;
  ALTER TABLE foo DROP COLUMN bar;
  ALTER TABLE foo ADD COLUMN baz INET;
COMMIT;

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

3 голосов
/ 17 февраля 2011

Вот ссылка, в которой перечислены различия в характеристиках многих основных продуктов баз данных:

Сравнение различных реализаций SQL

1 голос
/ 10 августа 2013

ПОЛНОЕ НАРУЖНОЕ СОЕДИНЕНИЕ.Отсутствие этого является одной из моих самых больших жалоб на MySQL.Но Postgresql их поддерживает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...