СУБД MariaDB создана в 2009 году как открытая альтернатива MySQL после поглощения Sun Microsystems (владельца MySQL) компанией Oracle. Многие Linux-дистрибутивы (Debian, Ubuntu, CentOS 7+) заменили MySQL на MariaDB по умолчанию. По синтаксису SQL и API MariaDB обратно совместима с MySQL до версии 10.3.
Как работает MariaDB
MariaDB использует плагинную архитектуру движков хранения (Storage Engines). Основной движок — InnoDB, обеспечивающий ACID-транзакции и построчную блокировку. Дополнительно доступны Aria (улучшенный MyISAM с crash-safe), ColumnStore (аналитика на основе колоночного хранения), Spider (распределённые таблицы через федеративные запросы).
Репликация реализована через бинарный лог (binlog): primary записывает все изменения, реплики читают и воспроизводят. Galera Cluster обеспечивает синхронную multi-primary репликацию без конфликтов записи.
Отличия MariaDB от MySQL
| Характеристика | MariaDB | MySQL |
|---|---|---|
| Лицензия | GPL v2 (полностью open source) | GPL v2 / Oracle Commercial |
| Движки хранения | InnoDB, Aria, ColumnStore, Spider | InnoDB (основной) |
| JSON | Встроенные JSON-функции | JSON тип данных с 5.7 |
| Thread pool | Из коробки | Только Enterprise |
| Бинарная совместимость с MySQL | До 10.3 | — |
История
MySQL создан Монти Видениусом (Michael «Monty» Widenius) в 1994 году, выпущен в 1995. Sun Microsystems купила MySQL AB в 2008 году за $1 млрд. Oracle поглотила Sun в январе 2010 года. В том же 2009 году Видениус основал компанию Monty Program AB и создал форк MariaDB — назвал СУБД в честь своей младшей дочери Марии (MySQL назван по старшей дочери «My»). MariaDB Foundation основана в 2012 году. С версии 10.4 MariaDB всё сильнее расходится с MySQL в синтаксисе и функциях.
MariaDB в хостинге
На большинстве современных VPS с Ubuntu/Debian установка через apt install mariadb-server автоматически заменяет MySQL. Для миграции существующей MySQL-базы: mysqldump → перенос → импорт в MariaDB — совместимость SQL-синтаксиса сохранена до MariaDB 10.3.
Управление через Adminer или phpMyAdmin работает с MariaDB без изменений. Панель ISPmanager поддерживает MariaDB как альтернативу MySQL с версии 5.x.
На что обращать внимание
MariaDB 10.6+ включает innodb_read_only_compressed и улучшенный Optimizer. Настройка /etc/mysql/my.cnf идентична MySQL. Ключевые параметры производительности: innodb_buffer_pool_size (60–70% доступной RAM), max_connections (в зависимости от нагрузки). Резервное копирование через mysqldump --single-transaction не блокирует таблицы при использовании InnoDB.
Оптимизация производительности
Ключевые параметры в /etc/mysql/my.cnf:
[mysqld]
innodb_buffer_pool_size = 1G # 60-70% RAM
innodb_log_file_size = 256M
max_connections = 150
query_cache_type = 0 # отключить в MariaDB 10.1+
Индексирование: EXPLAIN SELECT ... покажет, использует ли запрос индекс. Без индекса по полю WHERE — полный скан таблицы (Full Table Scan). SHOW PROCESSLIST — активные соединения и долгие запросы.