PostgreSQL - крутая СУБД, потому что..
- Она не принадлежит какой-либо компании, как например Oracle или mysql и распространяется по BSD-лицензии
- Имеет поддержку продвинутых фишек - PL/pgSQL, триггеров. Теоретически это очень полезно при создании очень масштабной системы.
- Транзакции по принципам ACID придают скорости - несколько запросов в одной транзакции выполняются как одна атомарная операция. А мультиверсионность помогает избежать блокировки таблиц.
- Объектность. Таблица выступает фактически в виде класса, а ряды - в виде объектов, так же как классы могут наследоваться, так и таблицы могут наследоваться.
- Система привилегий операций с таблицами, схожа с системой по принципу с Oracle.
- Репликации, т.е. использование нескольких серверов даёт масштабируемость.
Переход на PostgreSQL как правило связан с обработкой больших объемов данных - когда число рядов переваливает миллион, то mysql начинает испытывать трудности, а Natural Join нескольких таких таблиц может привести вообще к падению сервера. Да и тесты на параллельность поддерживают Postgre. Энтузиастам может быть интересна же не столь масштабируемость, сколько объектность, позволяющая большую свободу, или если хотите - сложность, по сравнению с mysql.
При переходе из mysql, следует отметить различия, которые естественно следует предусмотреть:
- Различные типы данных. Нет datetime, зато есть возможность создать тучу своих типов.
- Отсутсвие autoincrement. Такая функция заменена наличием sequence, и в упрощённом виде может использоваться так:
CREATE TABLE mynewtable (
id SERIAL
} - pgAdmin III очень удобная консольная программа, а в качестве замены phpMyAdmin есть phpPgAdmin
- Аналогом DATE_FORMAT является to_char
- Заглавные буквы в названиях таблиц и полей по умолчанию переводятся в нижний регистр, это можно обойти используя двойные кавычки
- Форматом для LIMIT конструкции стал также поддерживаемый с mysql 4
LIMIT # OFFSET # - Просмотр запущенных процессов реализуется аналогом
--show processlisеSELECT * from pg_stat_activity ;
Читайте также:
- Субъективная разница Postgre и MySQL
- Замена SQL_CALC_FOUND_ROWS из MySQL в Postgre
Комментарии
Но это не отменяет других преимуществ PostgreSQL