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 комментариев
Добавить комментарий