качество и надёжность с 2008 года

8 (800) 200-25-11

Техническая поддержка support@komtet.ru —

круглосуточно и без выходных дней

load-whois

Онлайн-касса

для интернет-магазина

Подключите ваш интернет-магазин

к онлайн-кассе в соответствии с 54-ФЗ

Периодическая оптимизация таблиц Drupal

Увеличение быстродействия за счет дефрагментации таблиц MySQL.

При частом обновлении Drupal'ом содержимого таблиц БД MySQL, особенно служебных таблиц, последние подвергаются фрагментации, что выливается в снижение быстродействия сервера БД и скорости выполнения запросов на чтение.

Для решения проблемы необходимо периодически дефрагментировать таблицы MySQL с помощью команды OPTIMIZE TABLE. И, конечно, лучше это делать не вручную.

В общем случае необходимо, чтобы регулярно примерно 10-15 таблиц было оптимизировано. Чаще всего оптимизации требуют таблицы batch, book, cache, cache_update, cache_filter, cache_form, cache_menu, cache_page, comments, comment_notify, files, flood, history, node, node_comment_statistics, node_revisions, menu_links, search_dataset, search_total, search_index, search_node_links, sessions, term_data, term_hierarchy, term_node, upload, variable, watchdog.

В зависимости от установленных модулей ваш набор таблиц может быть иной. Не стоит оптимизировать все таблицы, потому что команда OPTIMIZE TABLE блокирует таблицы на время своей работы.

Сушествуют два способа решения проблемы: с помощью системного cron и с помощью модуля в самом Drupal'е.

1. Оптимизация через системный cron

Для оптимизации создаем скрипт optimize_table.php с кодом:

<?php
$link = mysql_connect("хост", "пользователь", "пароль")
or die("Could not connect: " . mysql_error());
mysql_select_db("имя БД");
$result = mysql_query("OPTIMIZE TABLE batch, book, cache, cache_update, cache_filter, cache_form, cache_menu, cache_page, comments, comment_notify, files, flood, history, node, node_comment_statistics, node_revisions, menu_links, search_dataset, search_total, search_index, search_node_links, sessions, term_data, term_hierarchy, term_node, upload, variable, watchdog");
?>

Помещаем вызов "php optimize_table.php" в системный cron с интервалом в час.

 

2. Использование модуля db_maintenance

Для отимизации таблиц БД используется модуль Drupal'а db_maintenance. После установки выберите таблицы, которые нужно оптимизировать при запуске cron:

Администратор > Конфигурация сайта > DB maintenance

Источники:

http://drupalcookbook.ru/recept/optimizacija-tablic-bazy-dannyh

Клиентам — домены в подарок!
Бесплатный тест виртуального хостинга
Перенос сайта — бесплатно
Все акции
На сайте КОМТЕТ используются cookie-файлы, данные о IP-адресе и местоположении посетителей. Если, прочитав это сообщение, вы остаетесь на нашем сайте, это означает, что вы не возражаете против использования этих технологий.