Alter-net.me Невелика записна книжка.
Як оптимізувати таблиці і дефрагментувати для оптимізації простору в MySQL
Якщо ваш додаток виконує багато операцій видалення та оновлення бази даних на MySQL, то існує висока ймовірність того, що ваші файли даних MySQL. будуть фрагментовані.
Це призведе до безлічі невикористаного простору, а також може вплинути на продуктивність.
Таким чином, настійно рекомендується дефрагментировать таблиці в MySQL на постійній основі.
У цьому керівництві пояснюється, як оптимізувати і дефрагментувати таблиці в MySQL.
1. Визначення таблиць для оптимізації
Перший крок полягає у визначенні, чи є у вас фрагментації на вашій базі даних MySQL.
Підключіться до бази даних MySQL, і виконайте наступний запит, який буде відображати, скільки незайнятого простору доступні в кожній таблиці.
У наведеному вище висновку:
- Показує список всіх таблиць, які має мінімум 500MB невикористаного простору. Як ми бачимо вище, в даному прикладі, є 3 таблиці, які мають більш ніж 500MB невикористаного простору.
- Колонка data_length_mb показує загальний розмір таблиці в MB. Наприклад, розмір таблиці EMPLOYEE становить близько 21GB.
- Стовпець data_free_mb відображає загальне простір, який в цій конкретній таблиці. Наприклад, таблиця EMPLOYEE має 19MB невикористаного простору.
- Всі ці три таблиці (EMPLOYEE, DEPARTMENT і MANAGERS) сильно фрагментовані, і вони повинні бути оптимізовані, щоб звільнити простір, який.
На рівні файлової системи ви можете побачити розмір окремих файлів таблиці, як показано нижче.
Розмір файлу буде таким же, як ви бачите в колонці "data_length_mb" в наведеному вище висновку.
У цьому прикладі файл EMPLOYEE.MYD займає 21GB на рівні файлової системи, але він має багато невикористаного простору. Якщо ми оптимізуємо цю таблицю, розмір цього файлу повинен сильно зменшиться.
2. Дефрагментація за допомогою команди OPTIMIZE TABLE
Є два способи оптимізації таблиці.
Перший спосіб полягає у використанні команди Optimize table. як показано нижче.
Наступний приклад дозволить оптимізувати таблицю EMPLOYEE.