MySQL і MariaDB для сайту: що це, чим відрізняються і як використовуються

MySQL і MariaDB для сайту

MySQL і MariaDB — не «бази даних» у значенні одного файла з таблицями, а системи керування базами даних (СУБД). Саме сервер СУБД приймає з’єднання від Joomla, WordPress та інших застосунків, перевіряє права користувача, виконує SQL-запити й повертає результат.

Для власника сайту важливо розуміти не стільки внутрішню будову сервера, скільки практичні речі: де знаходиться сама база, чим MySQL відрізняється від MariaDB, що таке таблиця та індекс, навіщо потрібен utf8mb4, чому не можна видавати сайту глобальні права й що враховувати під час перенесення між серверами.

MySQL, MariaDB і база даних: у чому різниця

На одному сервері MySQL або MariaDB може існувати багато окремих баз. Кожна база містить таблиці конкретного проєкту, а підключення виконується під певним обліковим записом. Тому реквізити сайту включають не лише ім’я бази, а й ім’я користувача, пароль та адресу сервера.

SQL — мова, якою застосунок формулює запити до реляційної СУБД. Назва MySQL містить SQL, але сама MySQL — повноцінний сервер із механізмами зберігання, користувачами, правами, журналами, транзакціями та оптимізатором запитів.

Чому поруч із MySQL так часто згадують MariaDB.

MariaDB виникла як відгалуження MySQL і зберегла високий рівень сумісності зі звичними протоколами та SQL-синтаксисом. Тому багато хостингів використовують MariaDB замість MySQL, а CMS підключається до неї тим самим MySQL-сумісним драйвером.

Однак вважати дві СУБД повністю ідентичними вже неправильно. За роки розвитку в них з’явилися власні версії функцій, оптимізатора, типів даних, системних змінних і можливостей адміністрування. На типовому Joomla-сайті відмінності зазвичай непомітні, але під час міграції великої або складної бази між суттєво різними версіями сумісність потрібно перевіряти окремо.

Як CMS працює з MySQL/MariaDB

CMS не «відкриває» таблиці як Excel. PHP-застосунок установлює з’єднання із сервером, вибирає базу й надсилає запити. Одні запити читають інформацію, інші додають або змінюють записи, треті створюють або перебудовують таблиці під час установлення та оновлень.

На практиці використовуються різні види операцій:

  • SELECT отримує потрібні рядки;
  • INSERT додає нові записи;
  • UPDATE змінює наявні дані;
  • DELETE видаляє вибрані записи;
  • CREATE і ALTER створюють і змінюють структуру таблиць;
  • DROP видаляє об’єкт бази даних.

Саме тому користувачеві CMS потрібні права не лише на читання. Оновлення Joomla або встановлення розширення може створювати й змінювати таблиці. Обмежувати права після встановлення можна лише усвідомлено й із подальшим тестуванням оновлень.

Як влаштовані таблиці, індекси та транзакції

Реляційна база зберігає відомості в таблицях. Кожен рядок представляє окремий запис, а стовпці — його властивості. Для однозначної ідентифікації часто використовується первинний ключ, наприклад числовий id.

Індекси створюються для пришвидшення пошуку, сортування та з’єднання таблиць. Вони особливо важливі на великих масивах даних: запит за індексованим полем може виконуватися помітно швидше за повний перегляд таблиці. Але індекси теж займають місце й потребують обслуговування під час зміни даних, тому правило «що більше індексів, то краще» неправильне.

InnoDB і транзакції.

Сучасні встановлення MySQL/MariaDB зазвичай використовують InnoDB для таблиць застосунків. Для вебмайстра одна з найважливіших можливостей — транзакції. Вони дозволяють об’єднати кілька пов’язаних змін у логічну операцію та або зафіксувати їх командою COMMIT, або скасувати через ROLLBACK, якщо операцію ще не було підтверджено.

Це не замінює резервну копію: далеко не кожну адміністративну дію можна «відкотити» транзакцією, а видалений дамп або пошкодження файлів сервера транзакції не відновлять. Але розуміння транзакційності допомагає безпечніше виконувати складні SQL-операції.

Чому сьогодні варто орієнтуватися на utf8mb4

У старих посібниках часто зустрічаються utf8 і collations виду utf8_general_ci. У сучасних версіях MySQL бажаним Unicode-набором є utf8mb4: він підтримує символи повного діапазону Unicode. Це важливо не лише для emoji, а й для коректної роботи з широким набором писемностей і спеціальних символів.

При цьому не потрібно механічно змінювати collation робочої бази лише тому, що в іншій статті вказане «краще» значення. MySQL і MariaDB підтримують різні набори collations залежно від версії. Для нового проєкту вибирайте сумісний utf8mb4-варіант, рекомендований CMS або сервером; для наявного спочатку перевіряйте сумісність таблиць, з’єднання та індексів.

Що вебмайстру потрібно знати під час роботи з CMS

Що відбувається під час встановлення Joomla.

Під час встановлення Joomla отримує реквізити підключення, перевіряє з’єднання й створює набір таблиць зі своїм префіксом. Надалі ядро та розширення використовують ці таблиці для зберігання контенту й налаштувань. Під час перенесення сайту дамп імпортується на новий сервер, а в configuration.php коригуються параметри підключення.

Якщо файли сайту перенесені, а база не імпортована або вказані неправильні реквізити, повноцінний сайт не запрацює. І навпаки: однієї бази без файлів шаблону, розширень і зображень теж недостатньо. Тому міграція завжди розглядає файли й БД як дві частини одного проєкту.

Практичні навички вебмайстра.

Для обслуговування CMS не потрібно знати внутрішню будову MySQL на рівні адміністратора сервера. Але кілька практичних навичок суттєво спрощують роботу:

  • створити базу й окремого користувача;
  • призначити користувачу права лише на потрібну БД;
  • експортувати та імпортувати дамп;
  • переглянути структуру таблиць у phpMyAdmin;
  • виконати безпечний SELECT і перевірити вибірку до масового UPDATE або DELETE;
  • розуміти, де в конфігурації CMS знаходяться реквізити підключення;
  • перевіряти версії MySQL/MariaDB перед міграцією та оновленням CMS.

Цих знань достатньо для більшості завдань власника сайту й вони дозволяють вчасно зрозуміти, коли проблему вже краще передати системному адміністратору.

Підсумок

MySQL і MariaDB — серверні СУБД, на яких працює величезна кількість динамічних сайтів. Для CMS важливі сумісна версія сервера, коректне кодування, окремий користувач із правами на конкретну базу та регулярні резервні копії.

Якщо потрібна практика, переходьте до інструкцій зі створення й перенесення бази та зі створення користувача MySQL/MariaDB. Базові поняття окремо розібрані в статті «Що таке база даних».

Add comment

Знайшли помилку або неточність?

Выделите фрагмент текста и нажмите Ctrl + Enter. Также можно воспользоваться кнопкой ниже.

Знайшли помилку або неточність?

Виділений фрагмент буде додано до повідомлення автоматично. За потреби додайте пояснення.

Форма захищена від автоматичних надсилань

Дані використовуються лише для перевірки та виправлення матеріалу.