Оригинальная версия 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. Частота релизов
Политика Oracle - выпускать обновления безопасности для всех своих продуктов каждые три месяца. Но выход новой версии MySQL запланирован каждые два месяца. Это часто приводит к тому, что обновления продукта и обновления безопасности не синхронизируются.
Разработчики не успевают закрыть все сообщения об ошибках и уязвимости, в результате чего база данных может оставаться уязвимой несколько месяцев. Еще одна проблема 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 они включены в официальный релиз. Это означает, что движки правильно интегрированы и будут хорошо работать. Вот список поддерживаемых движков:
- Aria;
- XtraDB - улучшенная версия InnoDB;
- FederatedX - улучшенная версия Federated;
- OQGRAPH;
- SphinxSE;
- IBMDB2I;
- TokuDB;
- Cassandra;
- CONNECT;
- SEQUENCE;
- Spider;
- ColumnStore;
- MySIAM.
Напомню, что оригинальная MySQL поддерживает по умолчанию только три типа таблиц - Aria, MySIAM и InnoDB. Это важный аспект в выборе MySQL или MariaDB.
6. Имя и нумерация версий
Эти отличия MariaDB от MySQL не столь важны, но, возможно, они будут кому-то интересными. Имя MySQL было дано в честь первой дочери одного из разработчиков - Майкл Монти, ее зовут My. Разработку MariaDB продолжил тот же человек и на этот раз программа была названа в честь его младшей дочери - Марии.
Что касается версий, то изначально, до версии 5.6 версии MariaDB нумеровались синхронно до версий MySQL, на которых они были основаны. Но когда накопилось достаточно изменений и за основу стал браться код MariaDB номера версий было принято поменять на 10. С того момента нумерация MariaDB выполняется только так.
Выводы
В этой статье мы сделали сравнение MySQL vs MariaDB. По большинству параметров MariaDB намного лучше, чем MySQL, поэтому не зря большинство дистрибутивов Linux теперь используют ее по умолчанию в своих репозиториях. Оригинальная версия может понадобиться только в очень редких случаях.
Так и не понял про что я сейчас прочитал и зачем оно мне.
Поздравляю тебя Шарик, ты - балбес (с) Простоквашино.
Объясните балбесу где это можно применить в домашнем пользовании.
Я допустил ошибку, простительную Капитану Очевидности, но недопустимую для Адмирала Ясен ***. Исправляюсь.
Цитата из мультика, относилась не к вашему незнанию, что такое sql база и зачем она нужна, а к "бравированию" этим незнанием. Первым своим комментарием вы себя поставили в один ряд с школьником, который на уроке литературы громогласно заявляет "я даже не знаю кто это такой! нафиг надо. гы гы" либо к комментаторам игр жанры которых им не нравятся - "блин, столько теста в игре, ни***я не понял, кто такое г****о делает ?!" (реальный камент к Tyranny). Им невдомек, что игры делаются\литература\статьи пишутся не для конкретно их персоны, а для многих и кому-то эта игра\статья\поэму интересна и полезна.
Незнание это не повод для "гордости", это повод потратить 1-5 минут на гугл, чтобы узнать, что-то новое и немножко расширить кругозор + размять ум, подумав, а как бы вы могли это использовать для себя.
Конкретно по вопросу, а где применить можно дома.
Маленькое пояснение, sql\no-sql базы применяются для хранения любой информации, к которой можно\нужно обращаться в любой момент. Применяется в сайтах активно и обычных приложениях.
Лично я, дома использую no-sql базу для хранения\оперирования данными снятых с датчиков умного дома, т.е. температуры\открытия дверей\всяких статистик, удобно выводить их после в виде диаграмм\графиков.
ВашЪ АдмиралЪ Ясен ***.
Это шикарный комментарий. Адмирал Ясен ***, уважение вам за потраченное время!
Многим балбесам...
Было бы неплохо увидеть сравнение между MySQL, MariaDB и PerconaDB.
PerconaDB - это MariaDB с последней версией движка XtraDB и еще несколькими оптимизациями.
А где пункт 3 ?
Хотелось бы узнать про репликацию в mariaDB, в каких версиях что появилось? К примеру в mySQL в версии 4.1 появилась асинхронная репликация с SBR, в 5.1 - RBR - как работа над ошибками в SBR и mixed, в 5.6 идентификатор GTID в логах, частичная синхронная репликация.... Что же когда появилось в mariaDB история умалчивает..
Тем не менее, MySQL на 10 порядков стабильнее и обладает лучшей совместимостью. Говорю как человек, админивший продакшен shared веб-сервера на сотню сайтов с MySQL 4.1-5.5 (почти 10 лет админства). С MariaDB плотнее познакомился 2 года назад где-то. Я заколебался во всех сборках с MariaDB (имею ввиду свой VPS-сервер и такие штуки как OpenServer) наблюдать в логах как она что-то восстанавливает в базах... Хотя выключается/включается штатно! Ну и были глюки которые устранились ТУПО переездом на MySQL, остальное не помогло. Может быть 15 движков это и хорошо... но зачем? Разработчикам надо - пусть себе на локалочки и ставят. А пока что лобизм в продакшен на лицо, а остальное сисадмины разгребают. Вот нафига пилить MariaDB в VestaCP по умолчанию? Видел тред, аргументов за неё 0, тупо +1 и все. Вот такой FORCE выходит. Я не понимаю кому и зачем это нужно, точнее, подозреваю, что это про лицензионные войны GPL/OpenSource vs Oracle. Но ведь есть же открытый MySQL.. Нет, давай форк делать, который один фиг каждый релиз будут сливать с основным кодом MySQL. Как-то так.
MyISAM, а не MySIAM. Исправьте пожалуйста опечатку.
ну и где сравнение?
я вижу только набор маркетингого говна.
Адмирал Ясен Хер, так в чём выгода перехода на MariaDB с MySQL если на последней и так всё работает нормально? Тема сисек так и не раскрыта вами.
Отказался от MariaDB в пользу MySQL из-за unix_socket authentication. С этим плагином, появляется "дыра в системе, размером с Солнце", а если его отключить на данный метод аутентификации завязаны теперь многие вспомогательные и служебные скрипты в MariaDB.
И "грабли" могут вылезти в самом неожиданном месте.