В чем разница между MariaDB и MySQL?

MySQL и MariaDB – две технологии баз данных с открытым исходным кодом. Их можно использовать для хранения данных в табличном формате в виде строк и столбцов. MySQL – самая распространенная база данных с открытым исходным кодом. Кроме того, она используется как основная реляционная база данных для многих популярных веб-сайтов, приложений и коммерческих продуктов. MariaDB – это модифицированная версия MySQL. Сервис MariaDB был создан первоначальной командой разработчиков MySQL из-за проблем с лицензированием и распространением после того, как базу данных MySQL приобрела корпорация Oracle. С момента приобретения MySQL и MariaDB развивались по-разному. Несмотря на это, MariaDB использует файлы данных и определений таблиц MySQL, а также идентичные клиентские протоколы, клиентские API, порты и сокеты. Благодаря этому пользователи MySQL могут без проблем переходить на MariaDB.

Подробнее о MySQL »

В чем сходство между MariaDB и MySQL?

MySQL – это система управления реляционными базами данных, выпущенная в 1995 году. В 2009 году разработчики выпустили MariaDB в качестве форка кода MySQL 5.1.38.

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

Далее мы приведем еще несколько сходств.

Соответствие требованиям ACID

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

Совместимость с SQL

MySQL и MariaDB – это реляционные базы данных, которые упорядочивают данные в таблицы. И MariaDB, и MySQL используют SQL для управления данными и запросов к ним. В этих системах можно использовать множество одинаковых команд.

Подробнее об SQL »

И MySQL, и MariaDB хранят данные в виде реляционных таблиц с интерфейсом SQL.

Программное обеспечение с открытым исходным кодом

Сервисы MySQL и MariaDB, являющиеся системами управления реляционными базами данных с открытым исходным кодом, – это результат совместной работы сообщества разработчиков. Их исходный код доступен для общественности.

База данных MySQL имеет одну версию с полностью открытым исходным кодом, выпущенную под лицензией General Public License (GPL). Для нее также существует одна платная корпоративная версия с дополнительными функциями и поддержкой. MariaDB имеет полностью открытый исходный код на GitHub.

Безопасность

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

Ключевые отличия: MariaDB и MySQL

С момента отделения от MySQL сервис MariaDB продолжает расширять свои возможности. Некоторые из этих изменений привели к различиям в основных функциях, возможностях и производительности.

Далее указаны существенные различия между MySQL и MariaDB.

Работа с данными JSON

MariaDB и MySQL поддерживают получение и хранение данных JSON. Однако отчеты в формате JSON они хранят по-разному. MariaDB хранит отчеты JSON в строках, а MySQL – в виде бинарных объектов.

MySQL и MariaDB также не поддерживают все функции JSON. MariaDB поддерживает запросы JSON_QUERY и JSON_EXISTS, а MySQL – нет. Точно так же MySQL поддерживает собственный тип данных JSON JSON_TABLE, чего нет в MariaDB.

Однако MariaDB поддерживает типы данных JSON только начиная с версии 10.2. Тип данных JSON в MariaDB является псевдонимом для LONGTEXT.

Функциональные возможности

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

Например, MySQL предоставляет динамические столбцы, которые позволяют определять несколько значений данных в одном столбце и изменять столбец с помощью функций. Динамические столбцы позволяют маскировать данные для защиты конфиденциальной информации.

В отличие от этого, MariaDB поддерживает невидимые столбцы в представлениях базы данных. Невидимые столбцы не отображаются в списке, когда пользователь выполняет оператор SELECT или запрашивает значение в операторе INSERT.

Аутентификация пользователей

В MySQL есть компонент validate_password, который можно использовать для повышения безопасности паролей.

По умолчанию в MariaDB этого нет, но есть три плагина для проверки паролей. Вы можете использовать их, чтобы повысить защиту паролей. В версии 10.4 команда MariaDB представляет плагин аутентификации ed25519, который заменил ранее использовавшуюся аутентификацию SHA-1. Это помогает аутентифицировать пользователей и безопасно хранить пароли. 

Шифрование

MySQL и MariaDB шифруют данные в местах хранения и при передаче.

MySQL позволяет пользователям с правами администратора настраивать и шифровать журналы повторных и отмененных операций, но при этом не шифрует временное табличное пространство или двоичные журналы.

С другой стороны, MariaDB поддерживает шифрование двоичных журналов и временных таблиц. 

Пулы потоков

Благодаря пулам потоков база данных может оптимизировать свои ресурсы за счет объединения новых подключений с уже существующими потоками. Высокая производительность пула потоков крайне важна для приложений, которые требуют масштабирования и параллельного обслуживания тысяч пользователей.

В MariaDB пул потоков включен в плагин пула потоков, который является частью версии Community Edition. MariaDB предлагает возможность управлять более чем 200 000 подключениями одновременно.

В корпоративной версии MySQL есть плагин для пула потоков. Однако он не может обрабатывать такое количество соединений одновременно, как это происходит в MariaDB.

Когда использовать MariaDB, а когда – MySQL

В сравнении с MySQL сервис MariaDB лучше масштабируется и обеспечивает более высокую скорость запросов. Это удобно для управления большими данными. Вы также найдете в MariaDB дополнительные функции, которых нет в MySQL, например ядра хранилищ последовательностей и виртуальные столбцы. Можно также использовать несколько ядер в одной таблице.

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

Далее мы приведем некоторые рекомендации при выборе между обеими базами данных.

Ядра хранилищ данных

В системах управления базами данных ядра хранилищ данных являются компонентом, который помогает извлекать, обновлять и хранить данные в базе данных. Ядро хранилища, с которым вы хотите работать, может повлиять на ваше решение.

Вы можете использовать несколько ядер хранилищ данных как в MySQL, так и в MariaDB, но MySQL предлагает меньше вариантов. Некоторые ядра хранилищ данных в MySQL включают InnoDB, CSV, Federated, MyISAM, Merge и Federated.

MariaDB поддерживает некоторые ядра хранилищ данных, которых нет в MySQL, такие как XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra и Connect.

Лицензия

И в MariaDB, и в MySQL есть версии под лицензией General Public License (GPL). Сервис MariaDB полностью работает под лицензией GPL, в то время как для MySQL доступны две лицензии – публичная и частная.

Частная лицензия MySQL Enterprise Edition открывает дополнительные возможности, такие как пулы потоков, которые ускоряют скорость запросов. Компании, которые хотят распространять свое программное обеспечение MySQL без распространения исходного кода под лицензией GPL, могут выбрать корпоративную версию MySQL.

Совместимость баз данных Oracle

Совместимость баз данных Oracle – это способность базы данных Oracle работать с приложением, созданным на основе баз данных MariaDB или MySQL.

Если ваша организация уже использует продукты баз данных Oracle, вы можете выбрать MySQL. База данных Oracle предлагает особый режим совместимости для синтаксиса SQL, характерного для MySQL. Однако MySQL не поддерживает PL/SQL, язык, ориентированный на приложения, который был разработан специалистами Oracle.

Начиная с версии 10.3, сервис MariaDB поддерживает PL/SQL. MariaDB также предоставляет режим синтаксической совместимости Oracle для запуска приложений баз данных Oracle без изменений.

Скорость и производительность

В течение многих лет по некоторым показателям сервис MySQL преобладал над MariaDB. Например, MySQL версии 8.0 может обрабатывать больше запросов в секунду, чем MariaDB версии 10.3. Однако за последние годы в сервисе MariaDB появилось много улучшений.

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

Можете ли вы перейти с MySQL на MariaDB?

Да, вы можете перейти с MySQL на MariaDB без особых усилий. Сервис MariaDB разработан с расчетом на обратную совместимость с MySQL. Это означает, что приложения и скрипты, написанные для MySQL, должны работать с MariaDB без каких-либо существенных изменений. 

До появления версии MariaDB 5.5 сервис MariaDB Server следовал схеме нумерации версий MySQL, обеспечивая совместимость с одной и той же основной версией MySQL. В 2012 году из-за растущего числа функций, недоступных в MySQL, нумерация версий MariaDB Server изменилась. Для MariaDB вышла версия 10.0, а MySQL – версия 5.6.

MariaDB Server по-прежнему сохраняет высокий уровень совместимости с MySQL. Поддерживается обновление со старых версий MySQL до даже самых новых версий MariaDB с возможностью обновления на месте.

Переход с MySQL на MariaDB осуществляется по стандартной процедуре установки. Вы запускаете инструмент mysql_upgrade, чтобы обновить привилегии и таблицы событий базы данных MySQL эквивалентами MariaDB.

Краткое описание различий MySQL и MariaDB

 

MySQL

MariaDB

JSON

MySQL хранит отчеты JSON в виде бинарных объектов.

MariaDB хранит отчеты JSON в виде строк. Тип данных JSON в MariaDB является псевдонимом для LONGTEXT.

Совместимость баз данных Oracle

MySQL обладает высоким уровнем совместимости, но не поддерживает PL/SQL.

MariaDB обладает высоким уровнем совместимости и поддерживает PL/SQL начиная с версии 10.3.

Скорость и производительность

MySQL немного медленнее MariaDB в репликации и запросах.

MariaDB немного быстрее MySQL в репликации и запросах.

Функциональные возможности

MySQL поддерживает функцию «только чтение», динамические столбцы и маскирование данных.

MariaDB поддерживает невидимые столбцы и временное табличное пространство.

Аутентификация

В MySQL есть компонент validate_password.

В MariaDB есть три плагина для проверки паролей.

Шифрование

Базы данных MySQL используют InnoDB и AES для шифрования данных в местах хранения.

MariaDB поддерживает шифрование временных и двоичных журналов.

Ядра хранилищ данных

В MySQL меньше ядер хранилищ данных, чем в MariaDB.

В MariaDB больше ядер хранилищ данных, чем в MySQL, поэтому возможно использовать несколько ядер в одной таблице.

Лицензия

В MySQL есть две версии: MySQL Enterprise Edition и версия GPL.

MariaDB полностью работает под лицензией GPL.

Пулы потоков

В версии MySQL Enterprise Edition поддерживаются пулы потоков.

MariaDB может управлять более 200 000 подключениями одновременно, что превышает возможности MySQL.

Как AWS может обеспечить соответствие требованиям к MySQL и MariaDB?

Служба реляционных баз данных Amazon (Amazon RDS) – это набор полностью управляемых сервисов, который упрощает настройку, использование и масштабирование базы данных в облаке.

Выберите один из семи популярных ядер, два из которых предназначены для MySQL и MariaDB. Amazon RDS для Maria DB поддерживает серверы MariaDB версий 10.3, 10.4, 10.5 и 10.6. Amazon RDS для MySQL поддерживает MySQL Community Edition 5.7 и 8.0. 

Журналы Cloud Watch

Ниже перечислены другие преимущества использования Amazon RDS.

  • Вы можете всего за несколько минут выполнить экономичное развертывание масштабируемых облачных баз данных MariaDB и MySQL с возможностью настройки объема аппаратных ресурсов
  • Используйте существующий код, приложения и инструменты без изменений
  • Получите доступ к более чем 50 метрикам ЦПУ, памяти, файловой системы и ввода-вывода на дисках для расширенного мониторинга базы данных
  • Обеспечьте повышенную доступность и долговечность для эластичного масштабирования за пределы возможностей одного инстанса базы данных

Начните работать с MySQL и MariaDB на AWS, создав аккаунт сегодня.

AWS: дальнейшие шаги

Начните разработку с MySQL
Начните разработку с помощью PostgreSQL