Порівняння баз даних
MySQL: База даних за замовчуванням, все ще заробляє
MySQL — це база даних, на якій працює більша частина Інтернету, не тому, що це захоплююче, а тому, що це передбачувано: ядро ACID InnoDB, модель реплікації, до якої торкався кожен адміністратор, і екосистема панелей, плагінів і прикладних припущень, побудованих на її основі. Серйозна робота полягає в налаштуваннях конфігурації за замовчуванням, дисципліні реплікації та знанні того, де версія 8 насправді заробляє свою складність.
Головне
- InnoDB — це механізм зберігання даних, який має значення: кластеризовані первинні ключі, блокування рядків і безпечне відновлення після збою; Статті про спадщину MyISAM, які рекомендують заміну движків, зазвичай передують реальності, що сучасний стек MySQL на 99% складається з InnoDB і є щасливішим за це.
- MySQL 8 заслужив невдоволення при оновленні реальними функціями: віконними функціями, CTE, покращеним EXPLAIN FORMAT=TREE, обробкою JSON класу Hermes через JSON_TABLE; потоки, які передбачали маркетинг першочергових функцій форків MariaDB, значно звузилися.
- Реплікація – це місце, де кар’єра робиться або руйнується: налаштування на основі GTID роблять топологію (ланцюг, багато джерел) керованою, напівсинхронізацією як компромісом між продуктивністю та довговічністю, а затримку читання-реплікації потрібно вимірювати, а не припускати (перевірки у стилі pt-heartbeat або затримка на основі performance_schema).
- Робота над продуктивністю починається з повільного журналу запитів плюс performance_schema: дайджести операторів, використання індексу та індексування за першою схемою перевершують кожен чарівний список параметрів my.cnf; Розмір буферного пулу в порівнянні з робочим набором є справжньою ручкою, яка має значення.
- Резервні копії, які відновлюють: робочі процеси на основі дампа (mysqldump --single-transaction) для невеликих об’єктів, фізичні знімки (Percona xtrabackup-class) для швидкості та відновлення на певний момент часу, що завжди перевіряється за реальним графіком простою, а не за решіткою документації.
- Там, де статус MySQL за замовчуванням продовжує вигравати: екосистеми додатків приймають його, панелі відправляють його (часто замінюють на MariaDB), хмарні оператори надають його дешево, а екосистеми плагінів CMS (особливо WordPress) спочатку перевіряють на нього; залишатися за умовчанням означає залишатися перевіреним.
Польова нотатка
Найкращою роботою з підвищення продуктивності MySQL, яку я коли-небудь бачив, був не марафон налаштування конфігурації: це було видалення розробником трьох індексів, які боролися з однією таблицею OLTP за пропускну здатність запису. Скасування порівняльного аналізу починається з повільних дайджестів запитів, а не з дописів у блозі.
Часті запитання
MySQL 8 чи MariaDB для нового проекту?
Нові проекти без екосистемних обмежень: MariaDB є чудовою стандартною версією, але MySQL 8 має екосистему постачальника, виправлення безпеки та налаштування реплікації. Порівняйте функції, які вам дійсно потрібні, прочитайте нашу статтю про mysql проти postgresql, щоб дізнатися про реляційне питання.
Чи потребує змін існуючий MySQL на MariaDB?
Повернення до попередньої версії для версій у двійковому форматі є важким краєм: MariaDB не читає словник даних MySQL 8. Логічна міграція (дамп/завантаження) працює, заміна плагіна потребує інвентаризації перед закріпленням.
Напівсинхронна реплікація: варта затримка?
Це зменшує втрату даних у режимі тихого перемикання після відмови; класичне правило є одним із двох варіантів узгодженості/продуктивності з асинхронним як базовим. Для більшості перевантажених робочих навантажень правильною відповіддю буде напівсинхронізація плюс перевірене відновлення після відмови, а не повна синхронізація.
Як зупинити роботу одного повільного сайту?
Ресурси для кожного користувача (CloudLinux db_governor на спільних стеках, обмеження проксі-запитів попереду) плюс дисципліна повільних запитів; сама база даних не має ременя безпеки, якщо його не надає середовище.
Допомога Kinetikatech: порівняння баз даних
Це те, чим ми займаємося щодня: Вибір двигуна бази даних для розміщення робочих навантажень у порівнянні з гарантіями коректності, робочою вагою та реальною вартістю: вбудовані механізми проти серверів, MySQL проти PostgreSQL, SQL проти сховищ документів, а також застаріле прикладне дослідження, яке постійно повертається. Наша служба Адміністрування серверів та Оптимізація швидкості сайтів бере все на себе — оцінювання, впровадження, цілодобовий контроль і екстрене реагування протягом 30 хвилин.