Что такое 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.