MariaDB — современная реляционная СУБД созданная как форк MySQL

🟢 MariaDB. Введение

MariaDB — это современная реляционная система управления базами данных, созданная как форк MySQL после покупки последнего компанией Oracle. Основная цель MariaDB — сохранить совместимость с MySQL и при этом развивать проект как полностью открытый и независимый. Сегодня MariaDB используется в тысячах приложений и считается одним из лидеров среди open-source СУБД.

История

  • 2009 — проект MariaDB основан Михаэлем Видениусом, одним из создателей MySQL.
  • 2010-е — активное развитие, поддержка крупных дистрибутивов Linux.
  • 2020-е — MariaDB используется в крупных облачных решениях и корпоративных системах.

Особенности

  • Полная совместимость с MySQL (большинство запросов и API идентичны).
  • Поддержка множества движков хранения: InnoDB, Aria, ColumnStore и др.
  • Масштабируемость и высокая производительность.
  • Open-source модель с активным сообществом.

Установка

# Ubuntu/Debian
sudo apt update
sudo apt install mariadb-server

# CentOS/RHEL
sudo yum install mariadb-server

# Запуск сервиса
sudo systemctl enable --now mariadb

Подключение

mysql -u root -p

Создание базы и таблицы в MariaDB

CREATE DATABASE company;
USE company;

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    position VARCHAR(100),
    salary DECIMAL(10,2),
    hire_date DATE,
    email VARCHAR(200) UNIQUE
) ENGINE=InnoDB;

CRUD в MariaDB

INSERT INTO employees (name, position, salary, hire_date, email)
VALUES ('Иван Иванов', 'Менеджер', 60000, '2022-05-01', 'ivan@example.com');

SELECT name, position, salary FROM employees WHERE salary > 50000;

UPDATE employees SET salary = salary * 1.1 WHERE position = 'Менеджер';

DELETE FROM employees WHERE id = 3;

Индексы

CREATE INDEX idx_salary ON employees(salary);

Транзакции

START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

Хранимые процедуры и функции

DELIMITER //
CREATE PROCEDURE GetEmployees()
BEGIN
    SELECT * FROM employees;
END //
DELIMITER ;

DELIMITER //
CREATE FUNCTION Bonus(salary DECIMAL(10,2))
RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
    RETURN salary * 0.1;
END //
DELIMITER ;

Триггеры в MariaDB

CREATE TRIGGER before_insert_employee
BEFORE INSERT ON employees
FOR EACH ROW
SET NEW.hire_date = CURDATE();

Работа с JSON в MariaDB

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    data JSON
);

INSERT INTO products (data)
VALUES ('{"name": "Ноутбук", "price": 75000, "features": {"ram": "16GB"}}');

SELECT JSON_UNQUOTE(JSON_EXTRACT(data, '$.name')) AS product_name,
       JSON_UNQUOTE(JSON_EXTRACT(data, '$.features.ram')) AS ram
FROM products;

Репликация в MariaDB

MariaDB поддерживает master-slave и master-master репликацию.

SHOW MASTER STATUS;

CHANGE MASTER TO
  MASTER_HOST='master.host',
  MASTER_USER='repl_user',
  MASTER_PASSWORD='repl_pass',
  MASTER_LOG_FILE='mariadb-bin.000123',
  MASTER_LOG_POS=456789;

START SLAVE;

Бэкапы в MariaDB

mysqldump -u root -p company > company_backup.sql
mysql -u root -p company < company_backup.sql

Безопасность MariaDB

CREATE USER 'developer'@'localhost' IDENTIFIED BY 'StrongPassword!';
GRANT SELECT, INSERT, UPDATE, DELETE ON company.* TO 'developer'@'localhost';
FLUSH PRIVILEGES;

Заключение

MariaDB — мощная альтернатива MySQL с открытым исходным кодом. Она поддерживает транзакции, JSON, индексы, процедуры и репликацию. Благодаря высокой производительности и активному сообществу MariaDB стала выбором тысяч компаний по всему миру.

🔗 Официальная документация MariaDB

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии