Оптимізація бази даних для Мадженто

Оптимізація бази даних для Мадженто



Одна з особливостей Мадженто – це вбудована система логування. Вона переслідує масу цілей, основними з яких є збільшення швидкості обробки даних та налагодження. У першому випадку, за допомогою запису певних даних в таблицю бази даних, двигун швидше обробляє наступні запити. У другому випадку, з налагодженням, все теж зрозуміло – за допомогою логів спрощується процес знаходження помилок в коді і функціонуванні двигуна. Логі налагодження, в основному, записуються в системі за адресою var/log/. А для інших логів використовується база даних.

На жаль, іноді корисний функціонал починає шкодити іншим параметрам системи. Наприклад, при значному збільшенні обсягу логів в базі даних, швидкість роботи всього сайту на Magento може кардинально знизитися. В сьогоднішній статті ми розглянемо рішення цієї проблеми методом оптимізації бази даних.

 

Попередження: завжди робіть резервні копії перед виконанням будь-яких операцій в базі даних.

 

Вихідні дані (приклад): на сайті розміщено до тисячі товарів, кількість відвідувачів в день – 200, кількість зареєстрованих користувачів – до 100. При таких вихідних даних, без оптимізації бази і по самим грубим підрахунками, обсяг вашої бази даних кожен місяць буде збільшуватися на 300Мб.

А тепер порахуйте, скільки буде важити ваша база даних через 1 рік? Тепер прикиньте в умі, як це відобразиться на швидкості сайту. Думаю, що результат вас не влаштує. Тому, приступимо до вирішення даної задачі.

 

Для початку переконаємося, що в системі увімкнено автоматичне очищення логів (за замовчуванням воно вимкнено).

Зайдіть в консолі Система – Конфігурація (System > Configuration). Потім в лівому меню перейдіть в закладку Розширені – Система (Advanced – System).



У полі Включити очистку логів (Enable Log Cleaning) – виберіть Так.

І в полі Періодичність (Frequency) – виберіть бажану частоту очищення (в основному Щотижня буде достатньо).

Оптимізація бази даних для Мадженто

 

Іноді виконання 1 пункту не призводить до потрібних результатів. Тому, ми додатково розглянемо 2 пункт оптимізації – очищення бази даних вручну. Але приступайте до цього пункту акуратно, і тільки в тому випадку, якщо ви впевнені у своїх діях!

 

Отже, приступимо. Найпростіше таку операцію робити у веб-додатках для адміністрування баз даних (наприклад, як у нашому випадку, в phpMyAdmin).

  1. Заходимо в phpMyAdmin
  2. Відкриваємо потрібну базу даних
  3. Вибираємо потрібні таблиці, проставивши навпроти них галочки
  4. І натиснувши в полі З зазначеними (With Selected) – Очистити (Empty). Будьте уважні: ми очищаємо таблиці, але ні в якому разі не видаляємо!
  5. Підтверджуємо операцію натиснувши Так у спливаючому вікні попередження.

 

Оптимізація бази даних для Мадженто

 

Які таблиці можна очищати таким чином і з мінімальним ризиком:

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 зберігає дані про відвідувачів сайту), підходьте до вибору таблиць для оптимізації з повним усвідомленням.

 



Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься. Обов’язкові поля позначені *