Оптимізація бази даних для Мадженто
Одна з особливостей Мадженто – це вбудована система логування. Вона переслідує масу цілей, основними з яких є збільшення швидкості обробки даних та налагодження. У першому випадку, за допомогою запису певних даних в таблицю бази даних, двигун швидше обробляє наступні запити. У другому випадку, з налагодженням, все теж зрозуміло – за допомогою логів спрощується процес знаходження помилок в коді і функціонуванні двигуна. Логі налагодження, в основному, записуються в системі за адресою var/log/. А для інших логів використовується база даних.
На жаль, іноді корисний функціонал починає шкодити іншим параметрам системи. Наприклад, при значному збільшенні обсягу логів в базі даних, швидкість роботи всього сайту на Magento може кардинально знизитися. В сьогоднішній статті ми розглянемо рішення цієї проблеми методом оптимізації бази даних.
Вихідні дані (приклад): на сайті розміщено до тисячі товарів, кількість відвідувачів в день – 200, кількість зареєстрованих користувачів – до 100. При таких вихідних даних, без оптимізації бази і по самим грубим підрахунками, обсяг вашої бази даних кожен місяць буде збільшуватися на 300Мб.
А тепер порахуйте, скільки буде важити ваша база даних через 1 рік? Тепер прикиньте в умі, як це відобразиться на швидкості сайту. Думаю, що результат вас не влаштує. Тому, приступимо до вирішення даної задачі.
Для початку переконаємося, що в системі увімкнено автоматичне очищення логів (за замовчуванням воно вимкнено).
Зайдіть в консолі Система – Конфігурація (System > Configuration). Потім в лівому меню перейдіть в закладку Розширені – Система (Advanced – System).
У полі Включити очистку логів (Enable Log Cleaning) – виберіть Так.
І в полі Періодичність (Frequency) – виберіть бажану частоту очищення (в основному Щотижня буде достатньо).
Іноді виконання 1 пункту не призводить до потрібних результатів. Тому, ми додатково розглянемо 2 пункт оптимізації – очищення бази даних вручну. Але приступайте до цього пункту акуратно, і тільки в тому випадку, якщо ви впевнені у своїх діях!
Отже, приступимо. Найпростіше таку операцію робити у веб-додатках для адміністрування баз даних (наприклад, як у нашому випадку, в phpMyAdmin).
- Заходимо в phpMyAdmin
- Відкриваємо потрібну базу даних
- Вибираємо потрібні таблиці, проставивши навпроти них галочки
- І натиснувши в полі З зазначеними (With Selected) – Очистити (Empty). Будьте уважні: ми очищаємо таблиці, але ні в якому разі не видаляємо!
- Підтверджуємо операцію натиснувши Так у спливаючому вікні попередження.
Які таблиці можна очищати таким чином і з мінімальним ризиком:
core_session dataflow_batch_export dataflow_batch_import log_customer log_quote log_summary log_summary_type log_url log_url_info log_visitor log_visitor_info log_visitor_online report_viewed_product_index report_compared_product_index report_event
Після операції Очищення, бажано провести операцію Оптимізації. Для цього перейдіть на вкладку Структура у верхній частині сторінки PhpMyAdmin.
Виберіть ті ж таблиці, що і в попередньому кроці, але тепер в полі З зазначеними (With Selected) виберіть Оптимізація (Optimize).
От і все! Тепер можете оцінити приріст продуктивності вашого сайту.
Важливо!
Щоб ваш сайт завжди був на висоті – намагайтеся оптимізувати базу регулярно (хоча б раз на місяць).
Оскільки очищення таблиць видаляє певні статистичні дані (наприклад, таблиця log_visitor зберігає дані про відвідувачів сайту), підходьте до вибору таблиць для оптимізації з повним усвідомленням.