MariaDB против MySQL

MySQL или MariaDB? Какая система управления базами данных берет верх? Проект с открытым исходным кодом MySQL гордится тем, что находится на рынке уже более 20 лет. MariaDB, его так называемый «форк», впервые появился на сцене в 2009 году. Изначально он был нацелен на разработку универсальной замены с высокими стандартами сообщества open source. Однако в настоящее время оба проекта преследуют совершенно разные цели развития. Узнайте больше о них в этой статье.

Разработка MySQL и MariaDB

Финский инженер-программист Майкл «Монти» Видениус является ключевой фигурой, стоящей за разработкой MySQL и MariaDB. В 1995 году вместе со шведским дуэтом Дэвида Аксмарка и Алана Ларссона Видениус создал свою акционерную компанию MySQL AB, которая (всего через год после первого выпуска проекта) опубликовала свою первую систему управления базами данных (СУБД) с открытым исходным кодом под названием MySQL. Это впоследствии привело к ее всемирному успеху. Система достигла своего пика в 2008 году, когда она была продана компании Sun Microsystems за 1 миллиард долларов.

В 2009 году Вилдениус вместе с другими ключевыми разработчиками MySQL покинул проект и сразу же начал закладывать основы нового форка MySQL — MariaDB. Причиной разрыва Вилдениуса с предыдущим проектом стало предстоящее в 2010 году поглощение компании Sun Microsystems, возглавляемой весьма неоднозначным гигантом программного обеспечения Oracle. Команда разработчиков Вирдениуса опасалась, что Oracle вступит с ними в конфликт интересов, если гиганты будут переделывать программное обеспечение с открытым исходным кодом — MySQL — а также любое проприетарное программное обеспечение для баз данных.

По мнению Видениуса, MariaDB должна:

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

Именно по этой причине в 2012 году Видениус сформировал MariaDB-Foundation, создание которого стало возможным благодаря Monty Program AB — компании, созданной в 2009 году самим Видениусом. В 2014 году MariaDB Foundation объединилась с SkySQL, образовав впоследствии MariaDB Corporation.

Факт

Давая названия своим проектам, Майкл «Монти» Видениус всегда черпал вдохновение в своих детях. Префикс «My» в MySQL соответствует реальному жизненному имени его старшей дочери, имя форка MySQL — его младшей дочери Марии. Макс, имя его единственного сына, можно встретить в таких системах управления базами данных, как MaxDB или MaxScale.

На начальном этапе разработки MariaDB и ее серверов (проект сообщества MariaDB Foundation) основные фигуры MariaDB Corporation заботились о ее коммерческих подразделениях. Корпорация MariaDB просто хотела дистанцироваться от ситуации, в которой она будет управляться той же административной структурой, что и Oracle. Это разделение было воспринято сообществом разработчиков открытого кода довольно позитивно.

Основным направлением MariaDB является система открытой разработки, которой присущи два основных принципа:

  • Исходный код разрабатываемых частей программы доступен посредством публичных репозиториев
  • Все шаги, предпринятые на этапе разработки, становятся достоянием общественности.

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

Временная шкала развития MySQL и MariaDB

1995

Первый международный релиз СУБД MySQL с открытым исходным кодом благодаря компании MySQL AB

2008

MySQL продается компании Sun Microsystems

2009

Выпуск проекта форка MySQL — MariaDB — благодаря Monty Program AB

2010

Sun Microsystems поглощена Oracle

2012

Основан MariaDB-Foundation

2014

Слияние Monty Program AB с SkySQL — в результате создается корпорация MariaDB

Совет

Создайте надежный «дом» для своих веб-проектов с помощью хостинга SQL-серверов от IONOS.

MySQL и MariaDB: сравнение

Системы управления базами данных MySQL и MariaDB, по своей сути, основаны на одном и том же программном решении. Хотя MariaDB является форком (другими словами, побочной версией) MySQL 5.1, со временем она превратилась в самостоятельную систему управления базами данных. Здесь мы представляем основные различия текущих GA (general availability) версий MySQL 8.0.11 и Maria 10.2.8. Будут рассмотрены следующие моменты:

  • Структура базы данных
  • Движки базы данных
  • Запросы к базе данных
  • Производительность
  • Доступность
  • Безопасность использования
  • Экологическая совместимость
  • Поддержка
  • Документация и сообщество

Структура базы данных

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

По сути, для обеих рассматриваемых структур баз данных используются одни и те же системы управления базами данных. Обе они соответствуют реляционной модели баз данных. Их данные и определения таблиц совместимы, а идентичные протоколы, структуры и интерфейсы программирования (API) также применимы к обеим структурам. Все коннекторы MySQL могут использоваться с MariaDB без необходимости их модификации таким образом, чтобы приложения и инструменты стандартных интерфейсов баз данных, таких как ODBC или JDBC, были взаимосвязаны. Инструменты командной строки MariaDB, такие как mysqldump или mysqladmin, также ценны при выполнении административных задач и создании резервных копий.

Чтобы полностью устранить любые проблемы совместимости, команда разработчиков MariaDB ежемесячно синхронизирует исходный код форка с исходным кодом MySQL. Однако бинарная совместимость обеих систем управления базами данных закончилась с выходом MySQL 8. Начиная с этой версии, MySQL больше не совместима по нисходящей ни с одной из своих старых версий, ни с MariaDB.

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

Примечание

Изначально MariaDB была двоично-совместимой заменой MySQL. Однако с тех пор, как MySQL выпустила свою 88-й версии, это уже не так.

Движки базы данных

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

Примечание:

Движки баз данных — это подсистемы хранения, которые позволяют создавать, собирать, обновлять и стирать данные в таблицах баз данных различными системами управления базами данных. Для лучшего понимания смотрите раздел CRUD.

В следующей таблице показано, какие движки баз данных доступны для MySQL 8.0.11 и MariaD 10.3 (в соответствии с документацией самих поставщиков).

Движок базы данных

MySQL 8.0.11

MariaDB 10.3.8

Спецификация

InnoDB/ XtraDB

InnoDB является стандартной подсистемой хранения данных в MySQL (начиная с версии 5.5). До версии 10.1, MariaDB использовала форк InnoDB — XtraDB — в качестве стандартного движка базы данных. Начиная с версии 10.2, InnoDB также используется в качестве единственной подсистемы хранения данных в MariaDB. Она обеспечивает транзакционно-ориентированный доступ для чтения и записи.

MyISAM

MyISAM — стандартная подсистема хранения старых версий MySQL — обеспечивает быстрый доступ к таблицам и индексам базы данных. 

ПАМЯТЬ

MEMORY — это подсистема хранения временных данных. В то время как определения таблиц остаются на жестком диске, данные сохраняются в рабочей памяти. MEMORY подходит для баз данных в памяти с быстрым временем доступа и низкой задержкой.

CSV

Этот механизм сохраняет данные в виде полей данных в формате CSV, разделенных запятыми.

Архив

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

BLACKHOLE

BLACKHOLE служит в качестве инспектора SQL-запросов. Вместо того чтобы сохранять данные, BLOCKHOLE просто регистрирует любые элементы синтаксиса SQL.

Слияние

Merge, как следует из названия, облегчает объединение многочисленных таблиц MyISAM с идентичной структурой в одну общую таблицу.

Federated/ FederatedX

Federated позволяет MySQL получать доступ к таблицам с других серверов через удаленную конфигурацию. MariaDB пользуется его развитием: FederatedX.

ColumnStore

ColumnStore — это перенос InfiniDB, который позволяет обрабатывать данные петабайтного размера на основе столбцов.

Aria

С 2007 года Aria превратилась в устойчивую к сбоям альтернативу MyISAM.

Cassandra

Cassandra предлагает пользователям MariaDB движок базы данных, управляющий большими структурированными наборами данных. Это программное обеспечение использует нереляционный подход (NoSQL) и разработано для обеспечения высокой доступности и защиты от любых сбоев (т.е. без единой точки отказа).

ПОДКЛЮЧИТЬ

Механизм хранения данных CONNECT облегчает локальный и удаленный доступ к различным внешним источникам данных, таким как Dbase, CSV, DOS, FMT и XML.

Mroonga

Mroonga — это основанная на колонках система баз данных, которая предлагает полнотекстовый поиск на различных языках, включая китайский, японский и корейский.

MyRocks

MyRocks был создан для быстрого хранения данных с низкой задержкой и предлагает более качественное сжатие, чем InnoDB.

OQGRAPH

Открытый механизм вычисления запросов GRAPH (сокращенно OQGRAPH) обрабатывает данные из иерархических структур баз данных в сложные графы.

Последовательность

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

SphinxSE

Sphinx Storage Engine (сокращенно SphinxSE) — это альтернатива встроенному полнотекстовому поиску, предлагаемому MariaDB. Это возможно с помощью поискового демона Sphinx — searchd.

Паук

Spider — это движок базы данных с интегрированной функцией шардинга (разделения). Spider поддерживает разделы базы данных и eXtended Architecture (XA). Таким образом, различные ресурсы могут взаимодействовать с одной и той же транзакцией. Поэтому таблицы в разных системах баз данных обрабатываются так, как будто они принадлежат одной системе.

TokuDB

TokuDB используется для обработки больших объемов данных и поэтому предназначена для так называемых больших массивов данных.

Запросы к базе данных

Сфера применения MySQL не отличается от сферы применения MariaDB. Обе системы управления базами данных стремятся достичь 100% совместимости с языком запросов к базам данных SQL. Пользователи используют одинаковые SQL-запросы при создании, обновлении, извлечении или удалении записей базы данных.

Совет

Учебник MySQL для начинающих предлагает базовое введение в мир SQL-запросов.

Производительность

Эффективность систем баз данных оказывает самое непосредственное влияние на бизнес-операции любого предприятия. Пользователи, заинтересованные в одном из проектов Widenius с открытым исходным кодом, часто задаются вопросом, предлагает ли MariaDB более высокий уровень производительности, чем MySQL. Бенчмарк-тесты, такие как DBT-3, указывают на этот вывод. Решающим фактором здесь является тип движков баз данных, используемых как в первой, так и во второй системе. Контрольные тесты для систем с различными движками баз данных доступны всем пользователям сообществ разработчиков на сайтах соответствующих проектов.

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

MariaDB берет верх не только благодаря большому выбору альтернативных движков баз данных, но и благодаря эффективному оптимизатору SQL-запросов. Другими словами, при оптимизации запросов MariaDB (начиная с версии 10.0.1) больше не смотрит на внутреннюю статистику соответствующих движков баз данных, а принимает во внимание независимую от движка статистику таблиц. Они сохраняются в различных базах данных в виде обычных таблиц, которые записывают и оценивают заметно большие значения, определяя, таким образом, идеальный план выполнения SQL-запросов.

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

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

Высокая доступность

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

  • MySQL Cluster
  • MariaDB Galera Cluster

MySQL Cluster — это основанная на ACID модель транзакционных баз данных реального времени, которая достигает 99,9999% доступности без единой точки отказа благодаря архитектуре multi-master. Базы данных могут масштабироваться горизонтально благодаря стандартному оборудованию и предлагают функцию автоматического совместного использования для рабочих нагрузок, требующих чтения и записи. Доступ к данным зависит от требований интерфейса SQL или NoSQL. MySQL Cluster выпускается отдельно, текущая версия — 7.5. Как и MySQL, это кластерное решение продается с двойной системой лицензирования. Однако версия для сообщества поставляется с лицензией GNU General Public License.

В распределенных системах баз данных MariaDB основана на кластерном программном обеспечении Galera от Codership (финская компания по разработке программного обеспечения). Соответствующая структура интерфейса по умолчанию интегрирована в MariaDB, начиная с версии 10.1. Поэтому загрузка отдельной кластерной версии не требуется. Многомастерная архитектура также является основополагающим структурным компонентом кластера Galera кластера MariaDB. InnoDB (или XtraDB) выступает в качестве единственного движка базы данных для кластерных операций. Чтобы вывести отдельные кластерные решения из состава продуктов MySQL, команда разработчиков MariaDB придумала MaxScale — специальное расширение для данной системы управления базами данных, которое предлагает своим пользователям дополнительные возможности, позволяющие осуществлять маршрутизацию в распределенных системах.

MaxScale — это прокси-сервер базы данных, используемый в основном для распределения нагрузки. Он может быть настроен с помощью плагинов таким образом, чтобы не только перенаправлять доступ к базе данных, но и соответствовать определенным требованиям, когда это необходимо. Данный прокси анонимизирует конфиденциальные данные путем их обезличивания (с помощью имен пользователей), блокирует запросы в соответствии с заранее настроенными правилами, защищает от атак типа «отказ в обслуживании» (DoS), автоматически инициирует механизмы аварийного восстановления сети, а также повышает производительность баз данных с помощью кэширования и разделения чтения и записи (перенаправление доступа с чтения и записи на различные экземпляры баз данных).

В отличие от MariaDB, на MaxScale не распространяется лицензия GPL с версии 2.0. Вместо этого MariaDB разработала собственную лицензионную модель — Business Source License (BSL), которая сочетает в себе потребность в сообществе разработчиков открытого кода с экономическими требованиями к разработке программного обеспечения.

Примечание

По мнению различных разработчиков, Business Source License (BSL) является альтернативой Closed Source и Open Core. Хотя исходный код BSL всегда доступен бесплатно, использование программного обеспечения имеет фиксированное ограничение по времени. MaxScale можно использовать бесплатно в сценариях с использованием не более трех баз данных. Пользователи, которым требуется большее количество баз данных, должны приобрести специальную лицензию. Когда срок, установленный поставщиком услуг, истекает, BSL автоматически преобразуется в лицензию с открытым исходным кодом, эквивалентную GPL. Каждая версия MaxScale доступна всем пользователям без каких-либо ограничений не позднее чем через 3 года после ее выпуска по лицензии GPL.

Главный евангелист Кай Арно объясняет цели MariaDB, связанные с BSL, в своем выступлении на Днях ИТ 2016 во Франкфурте (начиная с 35:35):

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

Безопасность использования

Шифрование, аутентификация и роли пользователей — одни из самых важных функций безопасности системы управления базами данных.

И MySQL, и MariaDB предлагают методы шифрования для неактивных данных (называемых data-at-rest). MySQL реализует шифрование данных, уже сохраненных в базах данных, с помощью механизма InnoDB на уровне табличного пространства. Шифрование отдельных таблиц базы данных невозможно.

Примечание

Табличные пространства — это логические единицы хранения реляционных движков баз данных, таких как InnoDB, которые содержат все данные соответствующей системы баз данных. Каждое табличное пространство включает в себя как минимум один физический файл операционной системы, в котором хранятся таблицы базы данных и индексы.

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

  • табличные пространства InnoDB
  • таблицы InnoDB
  • файлы журналов InnoDB
  • таблицы Aria
  • Временные наборы данных
  • Бинарные данные журнала

С помощью Rolling Encryption Keys, MariaDB предлагает дополнительную функцию, которая определяет срок действия ключей шифрования.

Обе системы управления базами данных поддерживают службу управления ключами (KMS) Amazon Web Services с помощью специального плагина.

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

До версии 10.1.21 MariaDB также полагалась на алгоритмы безопасного хэширования в виде SHA-1. Начиная с версии 10.1.22, был внедрен ed25515-plugin, который сочетает SHA-2 с Curve25519 посредством схемы цифровой подписи EdDSA.

Технология шифрования, используемая в MariaDB, в основном принадлежит Google и немецкой компании Eperi.

Обе рассматриваемые системы управления базами данных поддерживают SSL-шифрованные соединения.

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

Экосистема

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

Функция

MySQL

Серверы MariaDB

Мониторинг

MySQL Enterprise Monitor (проприетарный)

Webyog Monyog (проприетарный)

Резервное копирование

MySQL Enterprise Backup (проприетарная)

MariaDB Backup (форк Percona XtraBackup, GPL)

Управление SQL

MySQL Workbench (GPL/проприетарная)

Webyog SQLyog (GPL/проприетарная)

Балансировка нагрузки и маршрутизация

MySQL Router (GPL/проприетарная)

MariaDB MaxScale (BSL)

Брандмауэр

MySQL Enterprise Firewall (проприетарный)

MariaDB MaxScale (BSL)

Поддержка

Профессиональная поддержка доступна только определенному количеству пользователей MariaDB и MySQL.

Те, кто приобретает лицензию на проприетарные продукты MySQL, также получают доступ к Oracle Premier Support, которая предлагает неограниченную круглосуточную помощь, доступ к базам знаний, релизам технического обслуживания, исправлениям ошибок, патчам и обновлениям. Кроме того, данная услуга предлагает удаленное устранение неполадок и профессиональные консультации по настройке производительности и установке. При необходимости пользователи могут просмотреть и изучить такие элементы, как пользовательские репликации, разделы, планы контуров, поиск, API, расширения сервера, функции и процедуры с помощью профессиональных специалистов по поддержке MySQL.

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

Документация и сообщество

MySQL принадлежит корпорации Oracle, которая опубликовала обширную документацию по всем проектам MySQL с открытым исходным кодом. Кроме того, чтобы лучше понять MySQL и соответствующие концепции, пользователи могут воспользоваться следующими возможностями:

  • MySQL Wiki
  • События MySQL
  • Группы пользователей MySQL

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

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

MariaDB против MySQL — сравнение наиболее важных характеристик

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

Характеристика

MySQL

MariaDB

Год выпуска

1995

2009

Текущая версия

MySQL 8.0.11

MariaDB 10.3.8

Разработчик

Oracle

MariaDB Corporation AB (MariaDB Enterprise)

MariaDB Foundation (MariaDB Server)

Лицензия

Двойная система лицензирования (Proprietary и GPL 2)

GPL 2

Возможные операционные системы

Oracle Linux

Red Hat

CentOS

Oracle Solaris

Ubuntu

Debian

SUSE Enterprise Linux

Microsoft Windows

Microsoft Windows Server

Apple macOS

FreeBSD

Solaris

Red Hat/CentOS

Ubuntu

Debian

Mint

SUSE Enterprise Linux

openSUSE

Microsoft Windows Server

Microsoft Windows

Manjaro

Fedora

Arch Linux

Apple macOS

 

Язык программирования

C и C++

C, C++, Bash и Perl

Основная модель базы данных

Реляционная модель базы данных

Реляционная модель базы данных

Вторичная модель базы данных

Документно-ориентированная модель базы данных

База данных с ключами-значениями

Модель документно-ориентированной базы данных

База данных с ключевыми значениями

Графо-ориентированная база данных

SQL-интерфейс

Да

Да

NoSQL интерфейс

Да

Да

Протокол

MySQL-Protocol

MySQL-Protocol

Репликация

Репликация с GTID (глобальный идентификатор транзакции)

— Репликация «ведущий-мастер

— Репликация «ведущий-ведомый

Репликация с GTID (глобальный идентификатор транзакции)

— Репликация ведущего мастера

— Репликация «ведущий-ведомый

Поддержка работы с памятью

Да

Да

Маршрутизация

MySQL Router (GPLv2)

MariaDB MaxScale (BSL)

Разбиение на разделы (шардинг)

Горизонтальное разделение, шардинг с помощью MySQL Cluster или MySQL Fabric

Горизонтальное разделение, шардинг с помощью Spider, CONNECT или Galera

Управление SQL

MySQL Workbench (Microsoft Windows, macOS и Linux)

SQLyog от Webyog (Microsoft Windows, Linux)

Мониторинг

MySQL Enterprise Monitor (проприетарный)

Monyog of Webyog (Microsoft Windows и Linux) (проприетарный)

Шифрование

Шифрование неактивных данных

— Табличное пространство InnoDB

Шифрование неактивных данных

— Табличное пространство InnoDB

— Таблицы InnoDB

— Файлы журнала InnoDB

— Таблицы Aria

— Временные наборы данных

— Двоичные данные журнала

Управление доступом на основе ролей (RBAC)

Нет

Да

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

Аутентификация через SHA-256

Аутентификация с помощью плагина ed25519

Маскировка данных

Через ProxySQL

Через MariaDB MaxScale (BSL)

Брандмауэр

Через MySQL Enterprise Firewall (проприетарный)

Через MariaDB MaxScale (BSL)

Аудит

Через MySQL Enterprise Audit Plugin (проприетарный)

Через MariaDB Audit Plugin

Анализ

Нет

Через MariaDB ColumnStore

Маршрутизация и балансировка нагрузки

Через MySQL Router

Через MariaDB MaxScale (BSL)

Резервное копирование

Через MySQL Enterprise Backup (собственная разработка)

Через MariaDB Backup (форк Percona XtraBackup)

Общее табличное выражение (CTE)

Да

Да

Оконная функция

Да

Да

Временные таблицы с помощью управления версиями

Нет

Да

Переписывание запросов

Да

Нет

Типы данных

Строковые (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON)

Числовые (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN)

Дата/время (DATE, DATETIME, TIMESTAMP, TIME, YEAR)

Большие типы данных объектов (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB)

Строковые (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON)

Числовые (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN)

Дата/время (DATE, DATETIME, TIMESTAMP, TIME, YEAR)

Типы данных больших объектов (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB)

Пространственные типы данных

ГЕОМЕТРИЯ

ТОЧКА

ЛИНИЯ

ПОЛИГОН

МУЛЬТИПОИНТ

МУЛЬТИЛИНЕЙНАЯ СТРОКА

МУЛЬТИПОЛИГОН

ГЕОМЕТРИЯ

ГЕОМЕТРИЯ

ТОЧКА

LINESTRING

ПОЛИГОН

МУЛЬТИПОИНТ

МУЛЬТИЛИНЕЙНАЯ СТРОКА

МУЛЬТИПОЛИГОН

ГЕОМЕТРИЧЕСКАЯ КОЛЛЕКЦИЯ

Механизмы баз данных

InnoDB

MyISAM

ПАМЯТЬ

CSV

Архив

BLACKHOLE

Слияние

Федеративный

 

InnoDB/XtraDB

MyISAM

MEMORY

CSV

Архив

BLACKHOLE

Слияние

FederatedX

ColumnStore

Aria

Cassandra

CONNECT

Mroonga

MyRocks

OQGRAPH

Sequence

SphinxSE

Spider

TokuDB

Официальные коннекторы

ODBC

C++

C

ADO.NET

JDBC

PHP

Python

Perl

Ruby

Node.js

 

ODBC

C++

C

ADO.NET

JDBC

PHP

Python

Perl

Ruby

Excel

JavaScript

Swift

R

Резюме

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

Хотя MariaDB возникла на основе MySQL, первая на сегодняшний день является автономным решением для баз данных для продуктивного использования.

Факт

MariaDB зарекомендовала себя как серьезная альтернатива MySQL. Об этом свидетельствует, прежде всего, тот факт, что в конце 2012 года различные дистрибутивы Linux заменили MySQL на MariaDB в качестве стандартной формы установки. Fedora, CentOS, openSUSE, Arch Linux, Debian и Red Hat Enterprise Linux были среди затронутых дистрибутивов. Кроме того, Google, Mozilla, Wikipedia Foundation, TeamSpeak и XAMPP также начали пользоваться услугами MariaDB.

MariaDB состоит из команды разработчиков MySQL, которая может рассчитывать на большую поддержку сообщества разработчиков открытого кода. Это дает возможность MariaDB Foundation сделать доступными альтернативы с открытым исходным кодом для многочисленных корпоративных расширений экосистемы MySQL, которые не всегда соответствуют всем стандартам открытого исходного кода, предусмотренным Брюсом Перенсом и Эриком С. Реймондом.

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

Оцените статью
cdelat.ru
Добавить комментарий