[mdk-re] MySQL vs PostgreSQL

Yuri Ryazantsev =?iso-8859-1?q?yuri_=CE=C1_unix=2Eru?=
Ср Сен 26 14:02:13 MSD 2001


On Wed, Sep 26, 2001 at 01:30:36PM +0400, Maxim wrote:

> Как люди думают, что перспективнее.
> 
> MySQL
>      + Простота использования, быстрота. Наиболее распространен.
>      -  По  сути  реализован  чистый SQL без многих полезных наработок. Например
>         нет хранимых процедур или функций. Большое распространение среди простых
>         систем.
> 
> PostgreSQL
>      +    большое    количество    дополнительных    возможностей.   Поддержка
>      объектно-ориентированных  баз данных. Более пригоден для создания серьезных
>      баз данных.
>      - Быстродействие меньше чем у MySQL. Менее распространен чем MySQL. В связи
>      с чем имеет меньше поддержки.
> 
> Может, кто пользовал и то и другое, скажет свое мнение по сабжам?

Я по воле случая использовал и то и другое. Если кратко, то универсального
средства нет. Все зависит от задач которые стоят перед тобой. Развернуто:

Примеры использования -
MySQL - у нас используется на всех наших серверах:
	http://www.megashop.ru
	http://www.bolero.ru
	http://www.24x7.ru
	http://www.allshops.ru
	http://www.wstore.ru и т.д.
	Реально они работают с нагрузками 5-50 requests/sec
PostgreSQL - не наш сервер, но заслуживает внимания http://www.rambler.ru

Поэтому, все что я скажу дальше - мой личный опыт и на основании его мое
личное мнение (не претендую на истинность и никому не навязываю).

Если уровень сложности задачи по отношению к БД небольшой, нет требований
транзакций, количество коннектов в секунду не очень - то идеальный выбор
MySQL.

Плюсы: легко ставится, администрится, настраивается. Быстрый начальный
коннект к базе. Не требует сколько нибудь специального освоения - включил и
уже начал писать свою записную книжку на WWW сервер. При этом не снижает
общей производительности системы.

Минусы: Отсутствуют транзакции (в полном смысле понимания СУБД) - и как
следствие этого - нет нормальных систем хранимых процедур, триггеров,
экспорта базы. Если без первых еще обойтись можно, то последнее меня
приводит в неудобное состояние. Кратко - на нагруженном сервере, не
останавливая сервер, сделать корректный экспорт базы в общем случае
невозможно.

Если из всего этого Вы уже во что-то уперлись - PostgreSQL. На самом деле
его не с мускулом надо сравнивать, а с Interbase, Sybase, Oracle (кстати
именно эти базы и маркетинговая цель Great Bridge).

Минусы: конечно это не Oracle, но он и весит меньше и ресурсов потребляет
меньше. Администрирование и настройка требует большего чтения документации,
однако (IMHO) довольно последовательной и логичной. Меньшее быстродействие
чем у мускулана редких коннектах, однако под нагрузкой ведет себя более
стабильно и предсказуемо. Может в силу большей применимости мускула, у
постгреса меньшее количество всяких адаптеров в различных языках (особенно
эта ситуация видна в python'е).

Плюсы: ну это даже трудно перечислить :-). Реальная транзакция (rollback и
commit). Триггера, хранимые процедуры, и т.д. Но самое, чем он привлек мое
внимание и что я не нашел в других базах - это возможность определять свои
типы данных и их обработку - причем на разных языках (SQL, C, ...). Как
пример - определяются типы ipaddr и netaddr (IP адреса и адреса сети с
масками). И далее одним SQL оператором ты вытряхиваешь из таблицы хостов
все, входящие в данную сеть. Причем, если такие вещи требуют спец. обработки
и критично их быстродействие - пиши на C, скомпиляй и прицепи как .so модуль
(реализовано на ремблере в поиске).

Ну а если более развернуто, то это уже тема для длинного разговора. А так
(еще раз повторюсь) все зависит от задачи, которую тебе необходимо решать.
Копать траншею длиной 100 км лопатой - занятие для мазохистов, а загнать
экскаватор в свой огород для выкапивания лунки для морковки - ....

with best wishes,

Yuri.





Подробная информация о списке рассылки community