MariaDB: що це таке та як з нею працювати?

Що таке MariaDB?

MariaDB – це система керування реляційними базами даних (RDBMS), створена як форк MySQL після його придбання компанією Oracle Corporation. Вона розробляється спільнотою під відкритим вихідним кодом та підтримує високу сумісність із MySQL.

🔥 Чим MariaDB відрізняється від MySQL?

Повна сумісність з MySQL – майже всі команди, запити та структури даних однакові.
Покращена продуктивність – швидша робота на великих навантаженнях.
Краща реплікація – асинхронна, синхронна та кластеризація.
Відкритий код назавжди – гарантія, що MariaDB не стане закритим проєктом.
Додаткові механізми збереження (Storage Engines), наприклад Aria, TokuDB, ColumnStore.
JSON-підтримка та вдосконалені SQL-можливості.


🔹 Встановлення MariaDB

В залежності від операційної системи, MariaDB можна встановити наступним чином:

🔧 1. Встановлення на Linux (Ubuntu/Debian)

sudo apt update
sudo apt install mariadb-server

Перевірка статусу:

sudo systemctl status mariadb

Запуск MariaDB:

sudo systemctl start mariadb

Захист конфігурації:

sudo mysql_secure_installation

🔧 2. Встановлення на Windows

  1. Завантажити MariaDB Installer.
  2. Встановити за допомогою майстра.
  3. Вибрати порт (стандартний – 3306).
  4. Запустити службу MariaDB.

🔧 3. Встановлення на macOS

Якщо використовуєте Homebrew:

brew install mariadb

Запуск:

brew services start mariadb

🔹 Підключення до MariaDB

Після встановлення підключитися до MariaDB можна через термінал:

mariadb -u root -p

Де:

  • -u root – користувач (адміністратор за замовчуванням).
  • -p – запит пароля.

Якщо ви використовуєте phpMyAdmin, просто зайдіть в http://localhost/phpmyadmin.


🔹 Основні SQL-команди в MariaDB

🔹 1. Створення бази даних

CREATE DATABASE shop;

Перехід до бази:

USE shop;

🔹 2. Створення таблиці

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price DECIMAL(10,2) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

🔹 3. Додавання даних

INSERT INTO products (name, price) VALUES ('Смартфон', 750.00);

🔹 4. Отримання всіх записів

SELECT * FROM products;

🔹 5. Фільтрація даних

SELECT * FROM products WHERE price > 500;

🔹 6. Оновлення запису

UPDATE products SET price = 699.00 WHERE name = 'Смартфон';

🔹 7. Видалення запису

DELETE FROM products WHERE name = 'Смартфон';

🔹 8. Видалення таблиці

DROP TABLE products;

🔹 9. Видалення бази даних

DROP DATABASE shop;

🔹 Додаткові можливості MariaDB

JSON-підтримка

MariaDB має вбудовану підтримку JSON:

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

Додавання даних:

INSERT INTO users (data) VALUES ('{"name": "Олег", "age": 30}');

Отримання значення:

SELECT data->'$.name' AS username FROM users;

Зв’язки між таблицями (FOREIGN KEY)

CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product_id INT,
    quantity INT NOT NULL,
    FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE
);

Об’єднання таблиць (JOIN)

SELECT orders.id, products.name, orders.quantity
FROM orders
JOIN products ON orders.product_id = products.id;

Індекси для швидкого пошуку

CREATE INDEX idx_name ON products (name);

🔹 Підключення MariaDB у PHP

Якщо працюєте з PHP, використовуйте PDO:

<?php
$dsn = "mysql:host=localhost;dbname=shop;charset=utf8";
$username = "root";
$password = "";

try {
    $pdo = new PDO($dsn, $username, $password);
    echo "Підключення успішне!";
} catch (PDOException $e) {
    echo "Помилка: " . $e->getMessage();
}
?>

🔹 Висновок

MariaDB – це сучасна, швидка та безкоштовна альтернатива MySQL, яка забезпечує вищу продуктивність та більше функцій. Вона сумісна з MySQL, що робить її чудовим вибором для будь-яких баз даних.

Підходить для веб-розробки, великих проєктів та кластерних систем.
Підтримує складні SQL-запити, JSON-формат та індексацію.
Відкрита та розвивається незалежно від Oracle.

Якщо ви використовували MySQL, перехід на MariaDB буде максимально простим, оскільки синтаксис команд та структура даних майже ідентичні. 🚀

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *