PostgreSQL против MySQL: в чем разница?

Содержание:

Anonim

Что такое MySQL?

MYSQL - популярная и широко используемая СУБД. Имя взято от имени девушки My, дочери соучредителя Майкла Видениуса. Исходный код MYSQL доступен под лицензией GNU GPL. Проект принадлежит и поддерживается Oracle Corporation.

Это СУБД (система управления реляционными базами данных), работающая в основном с моделью реляционной базы данных. Это делает администрирование базы данных более простым и гибким.

Что такое PostgreSQL?

Postgre - это система управления объектно-реляционными базами данных (ORDBMS). Он был разработан на факультете компьютерных наук Калифорнийского университета. Постгрес был пионером многих концепций.

Postgre - это система реляционных баз данных корпоративного класса. Легко настроить и установить. Он предлагает поддержку SQL и NoSQL. У него отличное сообщество, которое с радостью поможет вам, когда вы столкнетесь с проблемами при использовании PostgreSQL.

В этом руководстве вы узнаете больше о -

  • История MySQL
  • История PostgreSQL
  • Зачем использовать MySQL?
  • Зачем использовать PostgreSQL?
  • Особенности MySQL
  • Особенности PostgreSQL
  • Ключевые различия между MySQL и PostgreSQL
  • Недостатки использования MySQL
  • Недостатки использования PostgreSQL
  • Что лучше?

История MySQL

  • MySQL был создан шведской компанией MySQL AB 1995 г.
  • Sun приобрела MySQL AB за 1 миллиард долларов в 2008 году.
  • Oracle купила Sun в 2010 году и тем самым приобрела MySQL
  • В 2012 году MySQL был разделен на MariaDB основателем Майклом Видениусом в рамках компании Monty Program Ab.
  • MariaDB заменяет MySQL в большинстве дистрибутивов в 2013 году
  • Monty Program Ab слился с SkySQL-2013
  • SkySQL Ab переименован в MariaDB Corporation- 2014

История PostgreSQL

  • ИНГРЕС разработан в 1977 г.
  • Майкл Стоунбрейкер и его коллеги разработали Postgres-1986.
  • Поддержка реальных ACID и PL / pgSQL - 1990 г.
  • Выпущен как Postgres95 в 1995 г.
  • Переиздание Postgres95 как PostgreSQL 6.0 - 1996
  • Добавлены MVCC, GUC, элементы управления синтаксисом соединения и загрузчик процедурного языка - 1998-2001 гг.
  • Версии 7.2–8.2: Включены такие функции, как поддержка схемы, неблокирующий VACUUM, роли и dblink - 2002-2006 гг.
  • PostgreSQL 8.4 выпущен в 2009 г.
  • PostgreSQL 9.0 выпущен в 2010 г.
  • NYCPUG (группа пользователей PostgreSQL в Нью-Йорке) присоединяется к PgUS (ассоциация PostgreSQL в США) - 2013
  • PGconf организовал-2014

КЛЮЧЕВАЯ РАЗНИЦА:

  • PostgreSQL - это система управления объектно-реляционными базами данных (ORDBMS), тогда как MySQL - это СУБД, управляемая сообществом.
  • PostgreSQL поддерживает функции современных приложений, таких как JSON, XML и т. Д., В то время как MySQL поддерживает только JSON.
  • PostgreSQL хорошо работает при выполнении сложных запросов, тогда как MySQL хорошо работает в системах OLAP и OLTP.
  • PostgreSQL полностью совместим с ACID, тогда как MySQL совместим только с ACID при использовании с InnoDB и NDB.
  • PostgreSQL поддерживает материализованные представления, тогда как MySQL не поддерживает материализованные представления.

Зачем использовать MySQL?

Вот несколько важных причин для использования MYSQL:

  • Поддерживает такие функции, как репликация ведущий-ведомый, масштабирование
  • Он поддерживает разгрузку отчетов, распределение географических данных и т. Д.
  • Очень низкие накладные расходы с механизмом хранения MyISAM при использовании для приложений, в основном предназначенных для чтения
  • Поддержка механизма хранения в памяти для часто используемых таблиц
  • Кэш запросов для многократно используемых операторов
  • Вы можете легко изучить и устранить неполадки MySQL из разных источников, таких как блоги, официальные документы и книги.

Зачем использовать PostgreSQL?

Основные причины использования PostgreSQL:

  • Предлагает полезные функции, такие как разделение таблиц, восстановление на момент времени, транзакционный DDL и т. Д.
  • Возможность использовать сторонние хранилища ключей в полной инфраструктуре PKI.
  • Разработчики могут изменять открытый исходный код, поскольку он лицензирован BSD, без необходимости вносить дополнительные улучшения.
  • Независимые поставщики программного обеспечения могут распространять его, не опасаясь «заражения» лицензией с открытым исходным кодом.
  • Пользователям и ролям могут быть назначены права на уровне объекта.
  • Поддерживает AES, 3DES и другие алгоритмы шифрования данных.

Особенности MySQL

  • MySQL - это СУБД, управляемая сообществом
  • Совместимость с различными платформами, использующими все основные языки и промежуточное ПО.
  • Он предлагает поддержку для управления параллелизмом с несколькими версиями.
  • Соответствует стандарту ANSI SQL
  • Позволяет репликацию на основе журналов и триггеров SSL
  • Объектно-ориентированный и совместимый с ANSI-SQL2008
  • Многослойный дизайн с независимыми модулями
  • Полностью многопоточный, с использованием потоков ядра
  • Сервер доступен во встроенной БД или в модели клиент-сервер
  • Предлагает встроенные инструменты для анализа запросов и анализа пространства.
  • Он может обрабатывать любой объем данных, до 50 миллионов строк и более.
  • MySQL работает на многих разновидностях UNIX, а также на других системах, отличных от UNIX, таких как Windows и OS / 2.

Особенности PostgreSQL

  • Активное сообщество, которое ускоряет свое развитие
  • Наиболее распространенная альтернатива Oracle, DB2 и SQL Server
  • Работает на всех основных платформах ОС, которые могут быть у вас
  • MVCC поддерживает большое количество одновременных пользователей
  • Обширное индексирование для высокопроизводительной отчетности
  • Поддержка современных приложений (XML и JSON)
  • Поддержка ANSI SQL для переносимых навыков / кода
  • Поддержка внешних ключей для эффективного хранения данных
  • Объединения и представления таблиц для гибкого извлечения данных
  • Триггеры / хранимые процедуры для сложных программ и транзакций
  • Репликация для резервного копирования данных и масштабируемость чтения

Различия между MySQL и PostgreSQL

Параметр MYSQL PostgreSQL
Открытый исходный код Исходный код проекта MySQL предоставлен в соответствии с условиями Стандартной общественной лицензии GNU. PostgreSQL выпускается под лицензией PostgreSQL, которая является бесплатной лицензией с открытым исходным кодом. Это похоже на лицензии BSD и MIT.
Кислотное соответствие MySQL совместим с ACID только тогда, когда он используется с механизмами InnoDB и NDB Cluster Storage. PostgreSQL полностью совместим с ACID.
Совместимость с SQL MySQL частично совместим с SQL. Например, он не поддерживает проверочное ограничение. PostgreSQL в значительной степени совместим с SQL.
Поддержка сообщества У него есть большое сообщество участников, которые сосредоточены в основном на поддержке существующих функций, а новые функции появляются время от времени. Активное сообщество постоянно улучшает существующие функции, в то время как его инновационное сообщество стремится к тому, чтобы база данных оставалась самой передовой. Регулярно выпускаются новые передовые функции и улучшения безопасности.
Спектакль Он в основном используется для веб-проектов, которым нужна база данных для простых транзакций с данными. Он широко используется в больших системах, где важны скорости чтения и записи.
Лучше всего подходит MySQL хорошо работает в системах OLAP и OLTP, когда требуется только скорость чтения. Высокая производительность PostgreSQL при выполнении сложных запросов.
Поддержка JSON MySQL поддерживает тип данных JSON, но не поддерживает никаких других функций NoSQL. Поддержка JSON и других функций NoSQL, таких как встроенная поддержка XML. Он также позволяет индексировать данные JSON для более быстрого доступа.
Поддержка материализованных представлений Поддерживает материализованные представления и временные таблицы. Поддерживает временные таблицы, но не предлагает материализованные представления.
Экосистема MySQL имеет динамическую экосистему с такими вариантами, как MariaDB, Percona, Galera и т. Д. У Postgres были ограниченные возможности высокого класса. Однако он меняется с появлением новых функций, представленных в последней версии.
Значения по умолчанию Значения по умолчанию могут быть перезаписаны на уровне сеанса и на уровне оператора. Значения по умолчанию можно изменить только на системном уровне.
Индексы B-дерева При необходимости можно использовать два или более индекса B-дерева. Индексы B-дерева, объединенные во время выполнения для оценки, являются динамически преобразованными предикатами.
Статистика объекта Достаточно хорошая статистика объекта Очень хорошая статистика объекта
Вопросы о переполнении стека 532 тыс. 89,3 тыс.
Возможности присоединения Ограничить возможности присоединения Хорошие возможности присоединения
Звезды GitHub Бег 3,34 км Бег 5,6 км
Вилки Бег 1,6 км Бег 2,4 км
Известные компании, использующие продукт Airbnb, Uber, Twitter Netflix, Instagram, Groupon

Недостатки использования MySQL

  • Транзакции, связанные с системным каталогом, не соответствуют ACID
  • Иногда сбой сервера может привести к повреждению системного каталога
  • Нет подключаемого модуля аутентификации, препятствующего централизованно управляемой учетной записи
  • Нет поддержки ролей, поэтому многим пользователям сложно поддерживать привилегии.
  • Хранимые процедуры не кэшируются
  • Таблицы, используемые для процедуры или триггера, всегда предварительно заблокированы

Недостатки использования PostgreSQL

  • Текущие внешние решения требуют длительного обучения
  • Нет возможности обновления для основных выпусков
  • Данные необходимо экспортировать или реплицировать в новую версию.
  • В процессе обновления требуется двойное хранилище
  • индексы нельзя использовать для прямого возврата результатов запроса
  • Планы выполнения запросов не кешируются
  • Операции массовой загрузки могут зависеть от ЦП
  • Слабая поддержка независимых поставщиков программного обеспечения

Что лучше?

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