Создание, сопровождение и продвижение сайтов на CMS Drupal

Оптимизация Drupal: Очистка лишней информации о блоках.

Любой проект рано или поздно требует оптимизации. Можно «заоптимизировать» изображения, добиться сокращения кода, модулей Друпал, установки различного рода кэширования и упустить особенность, которая может оказать критическое влияние на производительность работы web-сайта.

Одна из таких особенностей Drupal - это информация о блоках установленных тем, хранимая в таблице {blocks}. Т.е. если вы установили на свой сайт тему, Drupal сохраняет для этой темы все блоки в таблице {blocks}. Самое неприятное, что после удаления темы эти данные все равно остаются.

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

Решается проблема достаточно просто. Из таблицы {blocks} удаляются все записи, кроме записей относящихся к реально необходимым темам – Garland и текущей активной теме. Определить необходимые записи можно по полю theme – в нем содержится наименование темы. Произвести данную выборку можно вручную или с помощью запуска SQL-команды в phpMyAdmin:

delete from block where not(theme='имя темы' or theme='garland');

! Перед запуском команды, не забудьте сделать копию таблицы {blocks}

В примере замените «имя темы» на имя активной темы, тему Garland я рекомендую так же оставить. Если необходимо оставить несколько тем, то необходимо добавить условие для этих тем - or theme='имя темы'.

Примечание. В Drupal 7 таблица называется {block}

Фото скульптуры из вынужденного путешествия по причине землетрясения 11 марта в Японии и опасности взрыва на Фукущиме. Вообщем, неожиданный но полезный отпуск. Много необычных статуй города Кобе.