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

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

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

 

 

Внимание: Всегда делайте резервные копии перед выполнением каких-либо операций в базе данных.

 

 

Исходные данные (пример): на сайте размещено до 1000 товаров, количество посетителей в день – 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 хранит данные о посетителях сайта), подходите к выбору таблиц для оптимизации с полным осознанием.

 

Recent Posts

Распространенные мифы и заблуждения о пиве: восстанавливаем справедливость

Пиво – один из самых популярных напитков, который наряду с чаем и кофе известен во…

7 часов ago

Уроки JavaScript — Краткие функции на замену большому объемному коду

Довольно часто у программистов возникает соблазн написать какую-нибудь обширную функцию, которая должна решать определенную задачу.…

6 дней ago

Зачем и как просыпаться раньше

Дискуссии вокруг этой темы вас, вероятно, уже утомили. Но я в данной статье постараюсь показать…

7 дней ago

Уроки JavaScript — Шпаргалка для разработчиков по работе с консолью в браузере

Консоль браузера (также известная как консоль JavaScript или веб-консоль) — это мощный инструмент для разработчиков,…

1 неделя ago

Бернард Шоу

Никогда не указывайте на ошибки, если не знаете, как их исправить Джордж Бернард Шоу  

1 неделя ago

Уильям Джеймс

Когда необходимо сделать выбор, а вы его не делаете, — это тоже выбор Уильям Джеймс…

1 неделя ago