Подчищаем таблицу опций
В WordPress'е есть один не очень хорошо продуманный момент, который создает бессмысленную нагрузку на сервер. Суть проблемы в том, что таблица опций используется не только для хранения опций, но и для rss-записей, полученных скажем с официальной Планеты WordPress и других данных. С точки зрения базы данных, размер таблицы не так и велик (у меня 750Кб в дампе), во всяком случае для MySQL это ерунда. Но есть один момент, который явно влияет на производительность WordPress.
Дело в том, что в таблице хранятся данные не только существующих плагинов, но и тех, который были однажды активированы. При создании опций можно указать один из параметров «autoload». Но по-умолчанию стоит в true. Это означает, что при каждой загрузке WordPress будет считывать и те опции, которые ему в общем-то не нужны.
Усугубляет ситуацию еще и то, что все опции кэшируются, то есть выносятся в отдельный файл, который и считывается вместо обращения к БД. Когда файл маленький (до 100Кб), проблем нет, но размер опций на деле оказывается гораздо больше, например у меня он получается 500Кб. Понятно, что кэш хоть и снимает нагрузку с БД, но увеличивает нагрузку на файловую систему.
Чтобы оценить размеры файла опций, зайдите в каталог wp-content/cache/цифры-буквы/options. Максимальный по размеру файл это и есть кэш опций.
Понятно, что было бы неплохо подчистить опции, удалив старые и ненужные. К сожалению я не знаю какого-то автоматического способа, поэтому я расскажу как это сделать вручную. Из-за этого сразу предупреждаю, что способ годится только для тех, кто умеет работать с phpMyAdmin и не теряется от предложения сделать (и восстановить) дамп таблицы. Так, что если вам что-то не понятно в этой статье, значит она не для вас.
Итак, приступим.
Первым делом открываем phpMyAdmin и переключаемся на обзор таблицы wp-options. Сразу делаем бэкап таблицы на свой компьютер.
Строк в этой таблице много, но начать можно с опций rss-агрегатора. Все они начинаются с «rss_». Для создания такой выборки нажимаем ссылку SQL и вводим запрос:
SELECT * FROM 'wp_options' WHERE option_name LIKE 'rss_%' LIMIT 0 , 30
и получаем нужный нам список. Обратите внимание, что нам нужны опции, начинающиеся с «rss_набор цифр и букв». Осмысленные названия, типа «rss_excerpt_length» трогать нельзя.
Отмечаем лишние опции и внизу выбираем «Удалить отмеченные». После предупреждения соглашаемся (кнопка «Да»).
Теперь делаем еще один дамп таблицы (старый не удаляем!) - с его помощью мы попробуем найти те опции, которые нам не нужны. Сразу же обращаем внимание на изменение размера дампа. Например у меня он сократился на 200Кб.
Открываем последний дамп текстовым редактором, например Notepad2 (он хорошо подсвечивает строки) и пролистываем его. Наша задача найти «большие» опции - те которые занимают много строк.
Если опция большая, то смотрим на её название и если ясно, что она относится к плагину, который уже не используется, то удаляем её. Например я нашел старый «gravatar» (плагин граватарок) и «tantan_ga» (гугловская аналитика). У вас, скорее всего будет что-то другое.
Опять делаем дамп таблицы и смотрим размер. У меня он стал чуть меньше 40Кб. То есть я добился почти 20-кратного уменьшения размера таблицы. После обновления кэша файл опций стал 14Кб (был 500Кб). Хороший результат.
Теперь о возможных проблемах.
1. Если вы удалили нужную опцию, то просто восстановите предыдущий дамп. Я бы вообще рекомендовал делать дампы на каждом этапе и каждый раз проверять работоспособность блога. Если же вы не знаете, что это за опция, то лучше её не трогайте. В случае, если вы удалили настройки какого-то плагина, то можно просто его деактивировать/активировать - плагин сам создаст нужные.
2. Если у вас кэш не обновляется. Стандартно кэш обновляется раз в 15 минут, поэтому попробуйте просто подождать. Если же это не помогло, то нужно вручную удалить каталог кэша. Скорее всего по FTP это сделать не получится, поэтому вам нужно войти в панель управления сайта (не WordPress!) и выбрать «Файл-менеджер». Дальше просто удаляем каталог кэша в корзину (и очищаем её). После этого через FTP снова создаем /cache/ и выставляем на него права для записи 777.
3. Что касается RSS-сборщика, то через какое-то время в таблице опять появятся данные. На самом деле это не так страшно, поскольку эти опции не загружаются автоматически (autoload = false).
Постоянная ссылка: http://maxsite.org/?p=269
Версия для печати
