Учебники

21) PostgreSQL против MySQL

Что такое MySQL?

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

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

Что такое PostgreSQL?

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

Postgre — это система реляционных баз данных корпоративного класса. Это легко установить и установить. Он предлагает поддержку SQL и NoSQL. У него есть отличное сообщество, которое с радостью поможет вам, когда вы столкнетесь с проблемами при использовании 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 Ab объединена со SkySQL-2013
  • SkySQL Ab переименован в MariaDB Corporation- 2014

История PostgreSQL

  • INGRES был разработан-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

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

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

  • Поддерживает такие функции, как Master-Slave Replication, Scale-Out
  • Он поддерживает отчеты о разгрузке, географическое распределение данных и т. Д.
  • Очень низкие накладные расходы с механизмом хранения MyISAM при использовании в основном для приложений чтения
  • Поддержка механизма хранения памяти для часто используемых таблиц
  • Query Cache для многократно используемых операторов
  • Вы можете легко изучить и устранить неполадки 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 General Public License. PostgreSQL выпускается под лицензией PostgreSQL, которая является бесплатной лицензией Open Source. Это похоже на лицензии BSD & MIT.
Соблюдение кислотности MySQL совместим с ACID, только если он используется с механизмами хранения кластеров InnoDB и NDB. 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-дерева, объединенные во время выполнения для оценки, являются динамически преобразованными предикатами.
Статистика объекта Достаточно хорошая статистика объекта Очень хорошая статистика объектов
Вопросы переполнения стека 532K 89.3K
Присоединяйтесь возможности Ограничить возможности соединения Хорошие возможности соединения
GitHub Stars 3.34k 5.6K
вилки 1.6k 2.4k
Известные компании, использующие продукт Airbnb, Uber, Twitter Netflix, Instagram, Groupon

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

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

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

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

Что лучше?

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

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

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