MariaDB
📜 Общее описание и историческая справка
MariaDB — реляционная СУБД, созданная как форк MySQL. Основатель — Михаэль «Монти» Видениус, один из создателей MySQL. После приобретения Sun Microsystems (а затем Oracle) компании MySQL AB в 2008 году, Видениус и его команда основали MariaDB Foundation для обеспечения открытости и независимости проекта. Первая стабильная версия MariaDB 5.1 вышла в 2009 году. С тех пор MariaDB развивается как замена MySQL с улучшенной производительностью, новыми движками хранения (Aria, ColumnStore), лучшей масштабируемостью и расширенной безопасностью. MariaDB сохраняет совместимость с MySQL на уровне API и протокола, что позволяет легко мигрировать.
Источники: Официальная история MariaDB, статья "Why MariaDB?" (Monty Widenius, 2009).
🏭 Область применения и рекомендации
MariaDB широко используется в веб-приложениях, особенно в стеке LAMP (Linux, Apache, MariaDB, PHP). Области применения:
- Корпоративные веб-приложения и CMS (WordPress, Drupal).
- Облачные платформы (Google Cloud SQL, AWS RDS предлагают MariaDB).
- Системы электронной коммерции.
- OLTP-нагрузки средней и высокой интенсивности.
Рекомендации: MariaDB — отличный выбор для проектов, которые ранее использовали MySQL, но хотят получить улучшенную производительность, более частые обновления и открытую экосистему.
🛠️ Как создать/инициировать базу
-- Подключиться к серверу (через клиент mysql)
mysql -u root -p
-- Создать базу данных
CREATE DATABASE myapp;
-- Использовать базу
USE myapp;
-- Создать таблицу
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
💡 Основные нюансы языка (диалект SQL)
MariaDB использует синтаксис, во многом совместимый с MySQL, но с добавлениями:
- Поддержка виртуальных столбцов (VIRTUAL, PERSISTENT).
- Расширенные движки хранения: Aria (замена MyISAM), ColumnStore (аналитические), Spider (шардинг).
- Оконные функции и общие табличные выражения (CTE) — появились в MariaDB 10.2.
- Динамические столбцы (аналог JSON в MySQL).
- Улучшенная обработка сессий и временных таблиц.
🔑 Наборы ключевых команд
-- Показать все базы SHOW DATABASES; -- Создать пользователя и дать права CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'securepass'; GRANT ALL PRIVILEGES ON myapp.* TO 'appuser'@'localhost'; FLUSH PRIVILEGES; -- Бэкап базы (в командной строке) mysqldump -u root -p myapp > backup.sql -- Восстановление mysql -u root -p myapp < backup.sql -- Показать процессор запросов SHOW PROCESSLIST;
📊 Построение запросов (сложные примеры)
Оконная функция для вычисления скользящего среднего:
SELECT
date,
value,
AVG(value) OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS moving_avg
FROM metrics;
Использование рекурсивного CTE для генерации числового ряда:
WITH RECURSIVE numbers(n) AS (
SELECT 1
UNION ALL
SELECT n + 1 FROM numbers WHERE n < 100
)
SELECT * FROM numbers;
Динамические столбцы (хранение гибкой схемы):
CREATE TABLE dynamic_data (id INT, data BLOB);
INSERT INTO dynamic_data VALUES (1, COLUMN_CREATE('name', 'Alice', 'age', 30));
SELECT COLUMN_GET(data, 'name' AS CHAR) AS name FROM dynamic_data;
📚 Ссылки на документы, статьи, книги
- Официальная документация MariaDB
- Книга: Daniel Bartholomew. "Getting Started with MariaDB" (Packt, 2013).
- Книга: Federico Razzoli. "Mastering MariaDB" (Packt, 2014).
- Статья: Блог MariaDB на Habr.
- Ресурс: MariaDB Foundation – новости и сообщество.