mysql или mariadb что выбрать
Сравнение MySQL vs MariaDB
Оригинальная версия MySQL была разработана фино-шведской компанией MySQL AB, которую основали Джвид Ахмарк, Аллан Ларссон и Майкл Монти. Первая версия MySQL появилась в 1995 году. Изначально она предназначалась для личного пользования, но спустя несколько лет превратилась в базу данных корпоративного уровня.
В январе 2008 Sun Microsystems приобрела MySQL AB за 1 миллиард долларов. Вскоре после этого, Oracle купила Sun Microsystems с разрешения Европейской комиссии, которая изначально опасалась, что такое решение повредить свободному проекту MySQL, поскольку он был прямым конкурентом СУБД Oracle. Из-за недоверия к стратегии развития MySQL был создан форк под названием MariaDB.
Шли годы и за это время MariaDB начала использоваться во многих дистрибутивах Linux по умолчанию. Она используется для обеспечения работы большинства сайтов интернета. В этой статье мы попытаемся выполнить сравнение MySQL vs MariaDB и разобраться почему вторая лучше первой и когда нужна именно оригинальная MySQL.
1. Процесс разработки
В отличие от многих других проектов с открытым исходным кодом полученных от Sun Microsystems, Oracle до сих пор развивает MySQL. После того как много разработчиков подали в отставку, были наняты новые люди. Но разработка новых версий MySQL ведется закрыто. Исходный код доступен только команде разработчиков и выгружается в публичный репозиторий только после завершения работы. Все решения обсуждаются внутри компании
MariaDB разрабатывается полностью открыто, все решения и новые идеи касаемо развития могут свободно обсуждаться в email рассылке, а также системе сообщений об ошибках. Помочь в разработке MariaDB очень легко, патчи от пользователей принимаются также, как и от разработчиков. В целом MariaDB развивается более активно.
Из-за раскрученности бренда у MySQL все еще есть большое сообщество, но все больше и больше проектов переходят на MariaDB. Такие известные корпоративные дистрибутивы, как REHL 7 и SLES 12 уже используют MariaDB, а это значит, что в сражении MySQL или MariaDB победит последняя.
2. Частота релизов
Разработчики не успевают закрыть все сообщения об ошибках и уязвимости, в результате чего база данных может оставаться уязвимой несколько месяцев. Еще одна проблема MySQL в том, что обновления безопасности очень расплывчаты. Если администратор не может просто обновить программу до новой версии, то создать бэкпорт сложно.
MariaDB выпускает обновления программы и обновления безопасности синхронизировано, поэтому все ошибки успевают исправить. Все исправленные CVE задокументированы и любой пользователь может узнать что изменилось в новой версии.
4. Возможности и функциональность
В целом MariaDB развивается быстрее и имеет больше возможностей. Эти возможности касаются оптимизации, улучшения работы с памятью, и много другого. Обычно, со временем, эти возможности переносятся в MySQL. Например, та же поддержка GIS появилась в MariaDB раньше, чем в MySQL. Среди прочего MariaDB имеет множество улучшений производительности Inodb, MyISAM и движка обработки запросов, поддерживает GIS, ликвидацию таблиц, виртуальные и динамические колонки, репликацию с несколькими источниками, роли и многое другое.
Но у MariaDB есть и свои минусы, она не поддерживает некоторые возможности, которые есть в MySQL. А именно, MariaDB несовместима с синтаксисом JSON MySQL, не поддерживаются плагины ngram, MeCab, MySQL X, а также пространства таблиц, которые позволяют присваивать данные нескольким таблицам одновременно. Но разработчики активно работают над исправлением недостатков.
Для тех, кого интересуют кластеры MySQL будет интересно то, что в MariaDB используется новая система репликации Galera, прием ее работа отличается от стандартного master-salve. Galera разрабатывается с 2007 года, но она никогда не включалась в официальную версию MySQL.
5. Поддержка движков хранения данных
Система управления базами данных MariaDB поддерживает намного больше движков для хранения данных. Большинство этих движков доступны в качестве плагинов для MySQL, но в MariaDB они включены в официальный релиз. Это означает, что движки правильно интегрированы и будут хорошо работать. Вот список поддерживаемых движков:
6. Имя и нумерация версий
Что касается версий, то изначально, до версии 5.6 версии MariaDB нумеровались синхронно до версий MySQL, на которых они были основаны. Но когда накопилось достаточно изменений и за основу стал браться код MariaDB номера версий было принято поменять на 10. С того момента нумерация MariaDB выполняется только так.
Выводы
В этой статье мы сделали сравнение MySQL vs MariaDB. По большинству параметров MariaDB намного лучше, чем MySQL, поэтому не зря большинство дистрибутивов Linux теперь используют ее по умолчанию в своих репозиториях. Оригинальная версия может понадобиться только в очень редких случаях.
Как перейти с MySQL на MariaDB? MySQL vs MariaDB
В отличие от других сравнений баз данных, MySQL против MariaDB имеет минимальные реальные, объективные достоинства. Они почти одинаковые (и некоторое время назад были одинаковыми!), Имеют одинаковую структуру каталогов и синтаксис и одинаковую производительность.
Итак, пока вы здесь, чтобы узнать, как перейти с MySQL на MariaDB, я думаю, что будет очень интересно узнать, откуда появился этот внезапный конкурент.
История перед MariaDB
Не переходя в режим полной энциклопедии, позвольте мне остановиться на основных моментах.
Оценки меняются, но справедливо сказать, что команды MySQL на момент написания статьи составляли около 45% рынка баз данных.
Они боялись, что Oracle заботится только о поразительной пользовательской базе MySQL, медленно убивающей дух проекта, интенсивно коммерциализирующей его.
В результате в 2010 году родился MySQL с чистым GPL-форком под названием MariaDB.
Теперь вы должны перейти на MariaDB?
Трудно так или иначе спорить, и для независимых разработчиков это не имеет значения. По популярности, MariaDB все еще не близка к MySQL, но становится известной.
Например, FAQ по установке WordPress упоминает MySQL и MariaDB на одном дыхании.
Для более крупных команд, работающих над долгосрочными решениями, это зависит от того, насколько они доверяют Oracle, чтобы сохранить первоначальные идеалы MySQL без изменений.
Объедините это с тем фактом, что MariaDB может внедрять инновации быстрее и вскоре станет несовместимым с MySQL на фундаментальном уровне, и есть веские основания для переключения. Кроме того, это не имеет значения на данный момент, и кроме некоторых параноидальных предприятий, пользователи MySQL остаются там, где они есть.
Как перейти с MySQL на MariaDB?
Например, если вы работаете в Ubuntu 18.04, первым шагом является добавление источников MariaDB в вашу систему следующим образом:
Теперь пришло время остановить MySQL:
и затем установите MariaDB, который запустится после завершения:
Наконец, если вы работаете не на Ubuntu 18.04, а на другой платформе, MariaDB имеет полезный инструмент, который может генерировать необходимые вам команды для простого копирования и вставки.
Прежде чем закрыть эту статью, предостерегаю вас: пожалуйста, сделайте резервную копию ваших файлов данных MySQL, прежде чем выполнять обновление.
Не менее важно, провести тщательное исследование совместимости устанавливаемой версии MariaDB, если вы используете предварительно созданные сторонние инструменты (такие как Magento, Drupal и т.д.).
Сравнение MariaDB и MySQL. Все, что вам нужно знать в 2019 году
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
В MariaDB добавлены оптимизации, которые повышают производительность СУБД по сравнению с оригинальным MySQL.
Представления
В части производительности представлений в MariaDB проделана существенная оптимизация. «Представления» — это, по сути, виртуальные таблицы базы данных, к которым можно обращаться, как к обычным таблицам базы данных. В MySQL при запросе к представлению запрашиваются все таблицы, связанные с этим представлением, независимо от того, что для запроса могут не потребоваться некоторые представления. В отличие от MySQL, в MariaDB, запрашиваются только те таблицы, которые необходимы для запроса.
Колоночное хранилище
MariaDB предоставляет еще одно мощное улучшение производительности, достигаемое с помощью нового типа таблиц, представленных не в форме построчного хранилища, а в форме колоночного хранилища. Колоночные хранилища часто используются в аналитике больших данных. MariaDB позволяет масштабировать хранилище данных до петабайтного размера, обспечивая линейное повышение производительности запросов к хранимых данным при добавлении новых серверов.
Более высокая производительность на SSD
MariaDB предоставляет механизм хранения MyRocks, который позволяет хранить данные в RocksDB. RocksDB — это встраиваемая база данных, которая была разработана для повышения производительности обработки данных, хранимых на SSD-накопителях.
Сегментированный кеш ключей
MariaDB представляет еще одно улучшение производительности — сегментированный кеш ключей. В типичном кеше различные потоки конкурируют за блокировку кэшированной записи. Когда несколько потоков конкурируют за мьютекс, только один из них может получить его, в то время как другим приходится ждать освобождения блокировки перед выполнением операции. Это приводит к задержкам выполнения в этих потоках, замедляя производительность базы данных. В случае сегментированного кэша ключей потоку не нужно блокировать всю страницу, но он может блокировать только тот сегмент, к которому относится страница. Это помогает нескольким потокам работать параллельно, увеличивая параллелизм в приложении, что приводит к повышению производительности базы данных.
Виртуальные столбцы таблицы
Интересная функция, которую поддерживает MariaDB — это виртуальные столбцы. Эти столбцы способны выполнять вычисления на уровне базы данных. Это позволяет перенести типовые вычисления с приложений в сервер СУБД. Эта функция не доступна в MySQL.
Параллельное выполнение запросов
Одна из последних версий MariaDB — 10.0 допускает параллельное выполнение нескольких запросов. Идея состоит в том, что некоторые запросы от Master могут быть переданы на выполнение на ведомые серверы (slave). Этот параллелизм в выполнении запросов, безусловно, обеспечивает MariaDB преимущество над MySQL.
Пул потоков
MariaDB также представляет новую концепцию под названием «Thread Pooling». Ранее, когда требовалось несколько соединений с базой данных, для каждого соединения открывался поток, что приводило к архитектуре «один поток на соединение». С использованием «Thread Pooling» исспользуется пул потоков, которые могут повторно использоваться. Таким образом, новый поток не нужно открывать для каждого нового запроса на подключение, что приводит к более быстрым результатам запроса. Эта функция доступна в коммерческой версии MySQL, но, к сожалению, недоступна в версии для сообщества.
Бэкенды хранения данных
MariaDB предоставляет несколько мощных механизмов хранения, которые не доступны в MySQL. Например, XtraDB, Aria и т. д. Чтобы настроить эти механизмы хранения для MySQL, вам необходимо установить их вручную.
Совместимость
Команда MariaDB гарантирует, что MariaDB сможет заменить MySQL в существующих приложениях. Фактически для каждой версии MySQL они выпускают тот же номер версии MariaDB, чтобы указать, что MariaDB обычно совместима с соответствующей версией MySQL. Это открывает возможность беспрепятственного перехода на MariaDB без каких-либо изменений в кодовой базе приложения.
Заключение
MariaDB, несомненно, достаточно мощный инструмент, который предоставляет множество уникальных функций, отсутствующих в MySQL. MariaDB — зрелый продукт, который может без сомнений использоваться как для повышения производительности так и для внедрения новых возможностей хранения и обработки данных.
Если вы хотите быстро начать использовать MariaDB для тестов или продуктового применения, рассмотрите нашу статью по развертыванию MariaDB в экосистеме Docker.
MySQL vs MariaDB
Начиная с октября 2011 года мы проводим апгрейд наших серверов баз данных, с целью замены MySQL на новую версию: MariaDB.
Что такое MariaDB?
Почему вообще Monty решил сделать клон своего же детища? Дело в том, что права на MySQL принадлежат компании MySQL AB, которую сначала купили Sun Microsystems, а затем уже Sun продались корпорации Oracle. В итоге Monty решил уйти из Oracle и сделать, в некотором смысле, MySQL «на стероидах».
MariaDB: что в ней есть нового?
MariaDB версий 5.1, 5.2 и 5.3 (beta) базируется на коде MySQL 5.1, но с рядом нововведений и улучшений.
Кроме того, в MariaDB переписана порядка трети оригинального кода MySQL, благодаря чему удалось избавиться от многих узких мест MySQL, улучшить работу на многопроцессорных системах и конечно же повысить стабильность.
Сравнительные тесты
Для того, чтобы понять, стоит ли овчинка выделки и действительно ли проделанные в MariaDB оптимизации заметны на глаз, мы провели ряд сравнительных тестов. Тесты проводились на сервере в конфигурации HP ProLiant DL160 G6, 2x E5520 Xeon QC CPU (16 cores), 20 Gb RAM, H/W RAID 10: 4x 300 Gb SAS 15k RPM. В качестве теста использовалась утилита mysqlslap следующим образом:
Таблицы MyISAM
Как интерпретировать результаты: чем ниже точка на графике, тем быстрее отработал тест. Судя по графику, уже начиная с 60 одновременно работающих клиентов, MariaDB отработала тесты почти в 1,5 раза быстрее, чем MySQL.
Таблицы InnoDB
Здесь ситуация аналогичная: MariaDB победила, но только перевес здесь гораздо более значительный: производительность InnoDB в MySQL в разы хуже, чем производительность XtraDB в MariaDB.
Следует так же отметить, что данный тест замерял производительность работы только с одной таблицей, поэтому роста производительности на JOIN’ах, и особенно на запросах, выполнение которых делается при помощи создания временных таблиц, на этих графиках не видно. Реально при переходе на MariaDB даже для таблиц MyISAM производительность БД может вырасти в несколько раз.
MariaDB против MySQL
Оригинальная версия MySQL была разработана фино-шведской компанией MySQL AB, которую основали Джвид Ахмарк, Аллан Ларссон и Майкл Монти. Первая версия MySQL появилась в 1995 году. Изначально она предназначалась для личного пользования, но спустя несколько лет превратилась в базу данных корпоративного уровня.
В январе 2008 Sun Microsystems приобрела MySQL AB за 1 миллиард долларов. Вскоре после этого, Oracle купила Sun Microsystems с разрешения Европейской комиссии, которая изначально опасалась, что такое решение повредить свободному проекту MySQL, поскольку он был прямым конкурентом СУБД Oracle. Из-за недоверия к стратегии развития MySQL был создан форк под названием MariaDB.
Шли годы и за это время MariaDB начала использоваться во многих дистрибутивах Linux по умолчанию. Она используется для обеспечения работы большинства сайтов интернета. В этой статье мы попытаемся выполнить сравнение MySQL vs MariaDB и разобраться почему вторая лучше первой и когда нужна именно оригинальная MySQL.
1. Процесс разработки
В отличие от многих других проектов с открытым исходным кодом полученных от Sun Microsystems, Oracle до сих пор развивает MySQL. После того как много разработчиков подали в отставку, были наняты новые люди. Но разработка новых версий MySQL ведется закрыто. Исходный код доступен только команде разработчиков и выгружается в публичный репозиторий только после завершения работы. Все решения обсуждаются внутри компании.
MariaDB разрабатывается полностью открыто, все решения и новые идеи касаемо развития могут свободно обсуждаться в email рассылке, а также системе сообщений об ошибках. Помочь в разработке MariaDB очень легко, патчи от пользователей принимаются также, как и от разработчиков. В целом MariaDB развивается более активно.
2. Частота релизов
Политика Oracle – выпускать обновления безопасности для всех своих продуктов каждые три месяца. Но выход новой версии MySQL запланирован каждые два месяца. Это часто приводит к тому, что обновления продукта и обновления безопасности не синхронизируются.
Разработчики не успевают закрыть все сообщения об ошибках и уязвимости, в результате чего база данных может оставаться уязвимой несколько месяцев. Еще одна проблема MySQL в том, что обновления безопасности очень расплывчаты. Если администратор не может просто обновить программу до новой версии, то создать бэкпорт сложно.
MariaDB выпускает обновления программы и обновления безопасности синхронизировано, поэтому все ошибки успевают исправить. Все исправленные CVE задокументированы и любой пользователь может узнать что изменилось в новой версии.
3. Возможности и функциональность
В целом MariaDB развивается быстрее и имеет больше возможностей. Эти возможности касаются оптимизации, улучшения работы с памятью, и много другого. Обычно, со временем, эти возможности переносятся в MySQL. Например, та же поддержка GIS появилась в MariaDB раньше, чем в MySQL. Среди прочего MariaDB имеет множество улучшений производительности Inodb, MyISAM и движка обработки запросов, поддерживает GIS, ликвидацию таблиц, виртуальные и динамические колонки, репликацию с несколькими источниками, роли и многое другое.
Но у MariaDB есть и свои минусы, она не поддерживает некоторые возможности, которые есть в MySQL. А именно, MariaDB несовместима с синтаксисом JSON MySQL, не поддерживаются плагины ngram, MeCab, MySQL X, а также пространства таблиц, которые позволяют присваивать данные нескольким таблицам одновременно. Но разработчики активно работают над исправлением недостатков.
Для тех, кого интересуют кластеры MySQL будет интересно то, что в MariaDB используется новая система репликации Galera, прием ее работа отличается от стандартного master-salve. Galera разрабатывается с 2007 года, но она никогда не включалась в официальную версию MySQL.
4. Поддержка движков хранения данных
5. Имя и нумерация версий
Эти отличия MariaDB от MySQL не столь важны, но, возможно, они будут кому-то интересными. Имя MySQL было дано в честь первой дочери одного из разработчиков – Майкл Монти, ее зовут My. Разработку MariaDB продолжил тот же человек и на этот раз программа была названа в честь его младшей дочери – Марии.
Выводы
Следует ли переходить?
Очевидно, что новые функции MariaDB не такие уж и волшебные – вам, возможно, потребуется доступ к некоторым данным Cassandra, но сомневаюсь, что для этого вы воспользуетесь MySQL. То же самое относится и к другим движкам на данной платформе. Производительность MariaDB немного выше на многоядерных компьютерах, однако, полагаю, что под это можно настроить и MySQL.
Во-первых, продумайте всевозможные риски (руководители высшего звена любят слушать про риск и пользу). Если вы перейдёте на MariaDB, возможно, вы начнёте пользоваться функциями, доступными только для MariaDB (что пока что маловероятно), а затем окажется, что вернуться назад к MySQL, не приложив усилий, не получится. Но осмелюсь предположить, что это не такой уж и риск, если учесть некоторые более масштабные проблемы.
Поразмышляйте над всеми вопросами насчёт Oracle и её планами по лицензированию MySQL. MySQL с открытыми исходниками идёт вразрез с патентованными и очень конкурентными программами. Только это является поводом для размышлений – будет ли Oracle что-либо предпринимать, чтобы как-то помешать разработке MySQL? Некоторые утверждают, что это уже происходит.
А что насчёт совместимости MySQL и MariaDB? Команда MariaDB усердно работает над тем, чтобы сделать базу данных полностью совместимой с MySQL, и они продолжают устранять ошибки в исходнике. Однако новые функции (а также схема нумерации версий) предполагают, что, несмотря на все усилия, обе платформы будут сильно различаться.
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.