SiteMaker - Академия сайтостроительства | Разработка сайта
| Вёрстка сайта
| Веб программирование
| Интернет технологии
| Продвижение ресурса
| Инструментарий
карта сервера :: форум :: профайл :: авторам :: о сайте
Гид: SiteMaker.Ru » Интернет технологии » Базы данных и SQL » MySQL против PostgreSQL

MySQL против PostgreSQL


Версия для печати
Меня часто спрашивают, «Что вы предпочитаете, PostgreSQL или MySQL?» Мой ответ всегда один и тот же: «Это – вопрос предпочтения». Вы можете задать множеству других разработчиков тот же самый вопрос, и их ответы будут весьма различного толка. Вот – сравнение баз данных MySQL и PostgreSQL, предлагаемое не ради высказывания моего мнения, а ради того, чтобы помочь другим принять собственное решение.

Обеим системам есть что предложить в вопросах стабильности, гибкости и производительности. MySQL имеет особенности, в которых PostgreSQL испытывает недостаток, и наоборот. Моя первичная задача – помочь решить, какая из этих двух баз данных будет использоваться в ваших собственных разработках.

Прежде, чем начать сравнение этих баз данных, я должен прояснить, что буду придерживаться заданных по умолчанию инсталляций. MySQL имеет много различных типов таблиц, которые поддерживают транзакации и внешние ключи. Однако, некоторые из конфигураций этих типов таблиц весьма сложны. Не многие разработчики сети или программисты используют дополнительные типы таблиц, существующие в MySQL. А теперь давайте сравним эти два продукта.

Список особенностей и возможностей

В таблице А приведено сравнение наиболее употребимых особенностей и возможностей баз данных MySQL и PostgreSQL.

Таблица А – это не исчерпывающий список особенностей, типов данных или проблем производительности, касающийся этих двух систем баз данных – она лишь дает некоторое представление о том, что каждая из них может предложить. Из таблицы мы видим, что PostgreSQL предлагает полные особенности и возможности традиционных приложений баз данных, в то время как MySQL сосредотачивается на более быстром выполнении (работе) для веб приложений. Развитие индустрии «открытых исходников» принесет большее количество особенностей и возможностей в последующих версиях обеих баз данных.

Таблица A: сравнение MySQL и PostgreSQL
ОсобенностиPostgreSQLMySQL
ANSI SQL совместимостьБлизка к стандарту ANSI SQLСледует некоторым стандартам ANSI SQL
Скорость работыМедленнееБыстрее
Вложенные селектыДаНет
ТранзакацииДаДа, однако должен использоваться тип таблицы InnoDB
Ответ базы данныхДаДа
Поддержка внешних ключейДаНет
ПредставленияДаНет
Хранимые процедурыДаНет
ТриггерыДаНет
UnionsДаНет
Полные JoinsДаНет
Ограничители целостностиДаНет
Поддержка WindowsДаДа
Вакуум (очистка)ДаНет
ODBCДаДа
JDBCДаДа
Различные типы таблицНетДа

Когда использовать MySQL

Почему бы вы предпочли MySQL, нежели PostgreSQL? Сначала, мы должны рассмотреть потребности приложений в терминах требований базы данных. Если я хочу создать веб приложение, и главное для меня это производительность и скорость – MySQL будет лучшим выбором, потому что она быстра и разработана для того, чтобы хорошо работать с веб серверами. Однако, если я хочу создать другое приложение, которое требует выполнения транзакаций и наличия внешних ключей, лучшим выбором станет PostgreSQL.

Даже при том, что MySQL не полностью совместима с ANSI SQL стандартом, я должен упомянуть, что, в то время как PostgreSQL ближе к ANSI SQL стандарту, MySQL ближе к ODBC стандарту.

Позвольте мне описать некоторые плюсы использования MySQL:

  • MySQL относительно быстрее PostgreSQL.
  • Дизайн и планирование базы данных несколько проще.
  • Можно создать простой веб сайт с использованием базы.
  • Ответы на запросы MySQL были хорошо протестированны.
  • Нет нужды использовать методы очистки (вакуум).

Когда использовать PostgreSQL

Не много веб-разработчиков используют в своей работе PostgreSQL, так как считают, что дополнительные особенности и возможности снижают производительность и скорость работы. Однако, PostgreSQL имеет много преимуществ над MySQL.

Например, некоторые из особенностей, которые часто используются – внешние ключи, триггеры и представления. Они позволяют скрывать сложность базы данных от приложения, таким образом избегая создания сложных команд SQL. Cуществует немало разработчиков, которые предпочитают богатые функциональные возможности SQL команд PostgreSQL. Одно из наиболее ощутимых различий между MySQL и PostgreSQL – невозможность создания вложенных подзапросов (селектов) в MySQL. PostgreSQL соответствует многими SQL стандартам ANSI, таким образом позволяя создание сложных команд SQL.

Несколько причин использовать PostgreSQL:

  • Сложный дизайн базы данных.
  • Переезд с Oracle, Sybase или MSSQL.
  • Сложные наборы правил.
  • Использование процедурных языков на сервере.
  • Транзакации
  • Использование хранимых процедур.
  • Использование географичеких данных.
  • R-Trees (например, использование индексов).

Заключение

Вы должны будете выбрать, взвесив все плюсы и минусы, какая база данных является «совершенной» для вашего приложения или сайта. А может быть и такое, что вы захотите использовать обе базы (бывают и такие случаи). Мое заключение – одна база не обязательно лучше другой, и каждая из них занимает свою определеную нишу в мире баз данных с открытым исходным кодом.

Ссылки по теме:
MySQL Home page
PostgreSQL Home page


Автор: DenveroidДата публикации: 13.07.2002
Рейтинг статьи: [4.10] рейтинг статьи: 4.10рейтинг статьи: 4.10рейтинг статьи: 4.10рейтинг статьи: 4.10 [голосов: 10]Кол-во просмотров: 35898
Оценить статью: Установите cookies!

Комментарии читателей:


Сообщение №47 Захожий 30.08.2002 15:32:13
По первых "Вакуум (очистка)" мускулю и нафиг не здалась, это недостаток постгреса, который приносит много проблем. Во вторых в мускуле есть такая команда как optimize table , которая приведет таблицу в оптимизированное состояние, а не только потрет не используемые записи, как делает постгресовский вакум.

Во вторых на виндах постгрес работает через задницу, ему надо цигвин ставить.

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

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

так что статья так себе, лучше на нее не ориентироватся.
Сообщение №81 Romych 05.11.2002 14:20:55
Пожалуйста скиньте на мыло, сервер и клиенты под Виндовс, ФрееБСД, Линукс все что есть. Буду очень признателен.
Сообщение №93 Vitaliy N. Kravchenkohttp://php4you.kiev.ua/ в новом окне02.12.2002 12:15:41
Да действительно статейка малюсенькая. Но все же хотелось бы внести несколько комментариев:
сразу хочу заметить, что это все мое ИМХО, полученное в результате собственного опыта + работа с FreeBSD/Linux (основных серверных платформ)

в сторону PgSQL:
- Это OODB - Object Oriented DataBase с наследованием, перегрузкой функций, и т.д.
- стабильнее (на порядок). Особенно ощущается при большой нагрузке с частыми insert/update.
- LO (Large Objects) (хранение фалов в БД).
- безопасность (более гибкая система прав доступа, 7.2-7.3+)
- pl/pgsql - user defined functions - ляля.
- Вложенные селекты (про это было уже сказано) - хочу добавить, что для разработок, сложнее хомепаги ВасиПупкина, это очень широкая и используемая возможность.
- возможность для разных пользователей положить их БД в другой каталог (юзабельно для ISP).

В mysql:
- быстрее. Но не селекты, как сказано в статье, хотя реально может быть они и быстрее, но это на практике не ощутимо, а коннект. Т.е. соединение с mysql происходит практ. мгновенно, в отличии от PgSQL (связано с механизмом авторизании, и правами доступа).

В любом случае выбор базы данных должен происходить не из-за сравнения, какая лучше, круче и все такое, а из условий поставленной задачи, т.е. какая БД наилучшим образом подходит к решению данной задачи. Плюс не забывая о том, что продукт надо не только разрабатывать, но и поддерживать, также о стоимости разработки, программер на MySQL стоит дешевле, чем на PostgreSQL, хотя слова "программировать" и "mysql" мне кажатся не очень совместимыми.

Единственное неоспоримое свойство mysql - это то, что она действительно нормально работает под win32. С постгресом тут есть некоторые проблемы.

Сам работаю и с тем и стем. предпочтение: pgsql.
Сообщение №94 Denveroidhttp://sitemaker.ru в новом окне03.12.2002 23:38:44
цитата:
В любом случае выбор базы данных должен происходить не из-за сравнения, какая лучше, круче и все такое, а из условий поставленной задачи, т.е. какая БД наилучшим образом подходит к решению данной задачи
А вот это правильное замечание. В выборе нужно руководствоваться многими вещами.
Сообщение №112 Neksahttp://www.webart.md/ в новом окне04.01.2003 11:10:10
Компания предоставляет postgresql на win32

www.dbexperts.net/postgresql

dbExperts has added significant value to PostgreSQL with improvements such as an installer for Linux and a unique version for Windows and Mac OS X.

In fact, dbExperts has developed the first and only commercial version of PostgreSQL for Windows (95/98/Me/NT/2000/XP). The distribution includes several utilities and well known open source projects such as Apache, Zope and PHP.

dbExperts PostgreSQL supports the following platforms: Windows, Linux, Mac OS X and FreeBSD. This cross-platform strategy gives the customer the freedom to choose an operating system that best suits his needs at the lowest TCO available.

» Читать все комментарии...

Ваши комментарии:

Ваше имя:*
Ваш E-mail:
Ваш URL:
HTML запрещен
BB Код разрешен


Ваше сообщение:*
* - обязательные поля для заполнения

Внимание!
Перед появлением сообщения на сайте, оно пройдет премодерацию.

Поиск по сайту:

Последние статьи:
Основы SQL: запросы к базе данных Основы SQL: запросы к базе данных
» архив всех статей
Схожая тематика:
:: Веб сервер и SSI
:: Сети
:: Протоколы

Академия веб мастеринга и веб дизайна. Разработка сайта, вёрстка сайта, веб программирование, продвижение ресурса, инструментарий и другие темы, посвященные разработке ресурсов в сети Интернет. Форум для веб мастера.


карта сервера :: форум :: профайл :: авторам :: о сайтеНаверх
Rambler's Top100Rambler's Top100 Valid HTML 4.01! © 2000-2017 Все права защищены
страница создана за 0.014 секунд
На главную страницуDeveloped by SiteMaker