Підступна війна росії проти України. Орієнтовні втрати ворога
(станом на 22.04.2024)
460260
осіб
348
літаків
325
гелікоптерів
7236
танків
13904
ББМ
11736
артилерія
768
ППО
1046
РСЗВ
15812
машин
26
кораблі і катери
Оптимізація бази даних для Мадженто
Опубліковано Оновлено: 20.04.2019

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

Одна з особливостей Мадженто – це вбудована система логування. Вона переслідує масу цілей, основними з яких є збільшення швидкості обробки даних та налагодження. У першому випадку, за допомогою запису певних даних в таблицю бази даних, двигун швидше обробляє наступні запити. У другому випадку, з налагодженням, все теж зрозуміло – за допомогою логів спрощується процес знаходження помилок в коді і функціонуванні двигуна. Логі налагодження, в основному, записуються в системі за адресою 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 зберігає дані про відвідувачів сайту), підходьте до вибору таблиць для оптимізації з повним усвідомленням.

 

 

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

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