MariaDB против MySQL: [2021] Все, что вам нужно знать

  • 28 апреля, 13:23
  • 5667
  • 0

MySQL - одна из наиболее широко используемых баз данных в мире. Это бесплатно и также имеет открытый исходный код. MySQL, разработанный на C / C ++, является одним из самых популярных вариантов баз данных.

База данных была создана шведской компанией MySQL AB в 1995 году. MySQL AB позже была приобретена Sun Microsystems в 2008 году. Позже Sun Microsystems была приобретена Oracle в 2010 году. С тех пор MySQL поддерживается и управляется Oracle.

Во время приобретения Sun Microsystems компанией Oracle некоторые из старших инженеров, которые работали над разработкой MySQL, почувствовали конфликт интересов между MySQL и коммерческой базой данных Oracle - Oracle Database Server. В результате эти инженеры создали вилку базы кода MySQL и основали свою собственную организацию. Так появилась MariaDB.

На сегодняшний день обе базы данных очень популярны и широко используются сообществом разработчиков. MySQL занимает 2-е место среди реляционных баз данных и 2-е место в целом (1-е место - база данных Oracle). Напротив, MariaDB немного отстает - 9-е место среди реляционных баз данных и 14-е место в целом.

MariaDB против MySQL

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

Сравнение производительности MariaDB и MySQL

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

Представления базы данных

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

ColumnStore

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

Лучшая производительность во флеш-хранилище

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

Сегментированный ключевой кеш

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

Виртуальные столбцы

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

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

Одна из последних версий MariaDB - 10.0 позволяет параллельно выполнять несколько запросов. Идея состоит в том, что некоторые запросы от мастера могут быть реплицированы на подчиненном устройстве и, следовательно, могут выполняться параллельно. Этот параллелизм в выполнении запросов, безусловно, дает MariaDB преимущество перед MySQL.

Пул потоков

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

Механизмы хранения

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

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

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

Открытый исходный код против проприетарной базы данных

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


0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все