З жовтня 2023 року MySQL 5.7 більше не отримуватиме оновлень та патчів безпеки. Оглядачі InfoWorld розбиралися, на що звернути увагу користувачам вже зараз.
MySQL – найпопулярніша в світі база даних з відкритим кодом. За даними DB-Engines, вона займає друге місце у загальному рейтингу популярності баз даних вже понад 10 років.
За даними InfoWorld, майже половина користувачів MySQL використовують саме версію 5.7. Є різні варіанти оновлення або перенесення.
Міграція на MySQL 8.0
MySQL 8.0 присутня на ринку з 2016 року, вона є дуже стабільним варіантом. Підтримка бази даних залишається, але в ній є деякі значні зміни порівняно з попередньою версією.
Одна з важливих змін – покращення підтримки SQL (Structured Query Language) в MySQL 8.0, що полегшує розробникам та адміністраторам баз даних підтримку запитів.
MySQL 8.0 також підтримує нові команди, яких немає в MySQL 5.7. Одним із прикладів є команда EXPLAIN ANALYZE, яка значно полегшує налаштування запитів.
Команда EXPLAIN дає приблизну оцінку сервером ефективності вашого запиту. Додавання ANALYZE призводить до виконання запиту, показує реальні показники продуктивності запиту. Це дає змогу отримати більше інформації про реальне виконання запитів та полегшує пошук шляхів удосконалення.
Крім того, команда INVISIBLE INDEX допомагає перевірити ефективність індексу без ризику катастрофічного перебудування після видалення.
Оновлений тип символів UTF8MB4 забезпечує підтримку Unicode версії 9.0, що дозволяє працювати з міжнародними символами. Це особливо корисно, якщо вам потрібно підтримувати глобальні операції.
Міграція на MySQL 8.0 є «вулицею з одностороннім рухом», тому вам слід визначити, чи підтримуватимуть ваші програма та база даних такий перехід. Ефективним способом перевірити це є використання утиліти util.checkForServerUpgrade() у MySQL Shell, яка проводить 21 різний тест для виявлення можливих проблем, що можуть виникнути під час міграції.
При розгляді DBaaS та альтернатив до MySQL варто враховувати інформацію, наведену нижче. Наприклад, чи є MySQL все ще найкращою базою даних для вас і вашої команди, або варто розглянути альтернативи? Якщо вам доведеться докласти значних зусиль, щоб довести вашу програму до потрібного рівня, то, можливо, варто замінити її іншою платформою?
Крім того, чи продовжуватимете ви запускати свою інфраструктуру бази даних у той самий спосіб, чи вам слід використовувати інший підхід, наприклад базу даних як послугу (DBaaS)?
По-перше, ви можете нічого не міняти й продовжувати використовувати старі версії MySQL, які більше не підтримуються. Це може бути найкращим варіантом, якщо вартість міграції до нової версії бази даних є надто високою. Наприклад, якщо ваша програма не прямо підключена до глобальної мережі й планується оновлення через 2 роки, то, можливо, краще залишити все як є.
Другий варіант – здійснити міграцію, але змінити місце розміщення ваших баз даних. Наприклад, хмарні сервіси та постачальники хостингу, сумісні з MySQL, можуть керувати цими системами за вас і звільнити вас від необхідності управляти власною інфраструктурою. DBaaS-послуги можуть спростити управління інфраструктурою, але ними також доведеться керувати й оновлювати їх самостійно.
Третій варіант – мігрувати до іншої бази даних. Якщо для оновлення програми й бази даних потрібно виконати значний обсяг роботи, то можна розглянути перехід до іншої бази даних. Це може бути корисно, якщо ви хочете перенести системи повністю, але це потребуватиме додаткового планування.
MySQL чи PostgreSQL?
Одним із найпоширеніших варіантів для міграції з MySQL є PostgreSQL, який також є популярною відкритою базою даних. PostgreSQL нещодавно оновили для підтримки команди SQL MERGE, яка широко використовується в Microsoft SQL Server, Oracle Database та MySQL. Така міграція може потребувати переписування коду, але якщо ви вже готові для переходу до MySQL 8.0, то чому б не розглянути перехід на PostgreSQL?
Існує багато баз даних, заснованих на PostgreSQL завдяки його гнучкій ліцензії з відкритим вихідним кодом, і багато компаній готові підтримувати PostgreSQL. Однак варто звернути увагу на те, чи повністю сумісні ці варіанти та чи підтримують вони відкритий вихідний код PostgreSQL.
Міграція з MySQL 5.7 до MySQL 8.0 або новіших версій стане задачею, з якою доведеться зіткнутися багатьом розробникам та адміністраторам баз даних вже у наступні кілька місяців. Почніть з планування наперед і розуміння ваших варіантів. Аналізуючи ваші наявні програми, роботу, яку потрібно буде виконати, і ваші потреби в інфраструктурі програми у майбутньому, ви можете оцінити плюси та мінуси різних шляхів.