8 (495) 374-54-72

MySQL и PostgreSQL - описание, сравнение.

В данной статье мы рассмотрим две системы управления базами данных (СУБД) - MySQL и PostgreSQL. Эти СУБД используются достаточно широко и разрабатывались для разных целей, а также являясь бесплатными программными продуктами, составляют серьезную альтернативу коммерческим СУБД, например MicrosoftSQL. Нужно учитывать, что обе системы продолжают бурное развитие и возможно в будущем те сравнительные характеристики, которые мы будем рассматривать, будут иметь более сильное различие. При разработке этих СУБД, разработчики пытались обеспечить полную совместимость со стандартами ANSI SQL, но не смотря на это для решения некоторых задач лучше подходит MySQL, а для других - PostgreSQL. Поэтому, если нужно выбрать СУБД, следует проверить соответствие возможностей СУБД требованиям, которые предъявляет определенная задача. Например, если важна скорость, то MySQL Server. Сможет ее обеспечить в достатке, а некоторые же специфические возможности присущи только PostgreSQL.

MySQL

Рассмотрим некоторые особенности принципов разработки этих СУБД. Разработчики MySQL, работающие в MySQL AB, старались писать оптимальный код, который не нужно будет менять в корне при следующих версиях, а также заботятся о максимальной скорости работы своей СУБД, нежели о более расширенных возможностях. Также каждая новая версия тщательно тестируется перед релизом. СУБД PostgreSQL имеет свою основу на ядре, написанном множеством разработчиков, некоторые из которых даже совершенно не знакомы с теми частями программы, которые создавались другими. Разработчики PostgreSQL постарались наделить свое детище большим количеством возможностей, пускай даже не оптимизировав их на максимум, так как позже можно будет подправить отдельные участки программы в более идеальную форму.

Теперь поговорим о самих возможностях этих двух систем управления БД. Рассмотрим преимущества MySQL. Как уже было сказано, что MySQL превосходит по скорости работы, это также реализуется благодаря использованию кэша в запросах. Ведь зачастую запросы на чтение повторяются, например к страницам веб-сайта и кэш играет свою роль. Также у MySQL больше пользователей, чем у PostgreSQL, например, MySQL очень часто выбирают для производственных предприятий. От большого числа пользователей увеличивается и ответственность у разработчиков и тестеров, ведь MySQL предоставляет пользователям поддержку на коммерческой основе. А у PostgreSQL поддержка появилась только в последнее время и не настолько развита. Также MySQL имеет превосходство над PostgreSQL в Windows-окружении, MySQL работает как нативное Windows-приложение, а PostgreSQL запускается из эмуляции Unix-среды — окружения Cygwin.

Отсюда и большая стабильность MySQL на Windows-машинах. Еще MySQL обладает большим количеством различных API-интерфейсов для разных языков. MySQL работает круглосуточно на промышленных серверах, обычно не требуется производить какие-либо «чистки». В случае PostgreSQL иногда приходиться использовать команду VACUUM для освобождения занятого пространства после отработки команд UPDATE и DELETE, а также проводить анализ для увеличения производительности. Причем VACUUM блокирует работу с базой данных, а также трабатывает долго при больших объемах данных. В поставку MySQL входят дополнительные пакеты для тестов и замера производительности, а также MySQL поддерживает больше функций ODBC, чем PostgreSQL. Стоит вспомнить, что на тему MySQL существует больше книг, которые очень помогают начинающим и уже более опытным администраторам. Можно перечислить много преимуществ MySQL, некоторые из них будут сугубо технические. Это и многопоточность, и создание таблиц без транзакций, система привилегий, полнотекстовый поиск, хорошая реализация ALTER TABLE, работа с обработчиками таблиц InnoDB и BerkeleyDB, а также многие другие вещи.

Несмотря на все плюсы MySQL, стоит отметить и недостатки по сравнению с PostgreSQL. Например, в PostgreSQL лучше проверена система транзакций. Использование потоков в работе MySQL не всегда отрабатывает безошибочно. Также бывают случаи с MySQL, когда в некоторых случаях один длинный запрос может блокировать надолго заблокировать таблицу. В PostgreSQL проще расширить возможности и дополнить новыми SQL-функциями, а также проще организованы обновления нескольких таблиц сразу. Также бывают случаи, в которых PostgreSQL более соответствует ANSI SQL. Еще одним преимуществом PostgreSQL является ускорение кода, за счет хранения его в виде процедур, а также лучше реализовано хранение географических данных. Вообще, разработчиков серверного кода PostgreSQL больше чем разработчиков MySQL, поэтому неизвестно что ждет в будущем эти две СУБД.

 

Похожие по теме публикации:


наверх