Обратите внимание, что вместо WordPress
лучше использовать современную и качественную
систему управления сайтом - MaxSite CMS!

Подчищаем таблицу опций

19 августа 2007 г. Просмотров: 5678 30
WordPress » Статьи

В 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Кб). Хороший результат. smile

Теперь о возможных проблемах.

1. Если вы удалили нужную опцию, то просто восстановите предыдущий дамп. Я бы вообще рекомендовал делать дампы на каждом этапе и каждый раз проверять работоспособность блога. Если же вы не знаете, что это за опция, то лучше её не трогайте. В случае, если вы удалили настройки какого-то плагина, то можно просто его деактивировать/активировать - плагин сам создаст нужные.

2. Если у вас кэш не обновляется. Стандартно кэш обновляется раз в 15 минут, поэтому попробуйте просто подождать. Если же это не помогло, то нужно вручную удалить каталог кэша. Скорее всего по FTP это сделать не получится, поэтому вам нужно войти в панель управления сайта (не WordPress!) и выбрать «Файл-менеджер». Дальше просто удаляем каталог кэша в корзину (и очищаем её). После этого через FTP снова создаем /cache/ и выставляем на него права для записи 777.

3. Что касается RSS-сборщика, то через какое-то время в таблице опять появятся данные. На самом деле это не так страшно, поскольку эти опции не загружаются автоматически (autoload = false).


twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru friendfeed.com google.com yandex.ru
Комментариев: 30
  1. У меня вообще каталога wp-content/cache нет! что бы это значило... :neutral:

  2. Помниться года 2 назад (когда ещё был блог на WP) взял себе за правило после теста какого-нить плагина подчищать сразу базу (благо ничего сложного - главное нужный префикс найти), а вот про rss_ что-то не подумал, спасибо за инфу

  3. Давно волновал вопрос оптимизации размера БД, в частности удаления из нее rss-записей с планеты Вордпресс.

    Поэтому спасибо, Максим!

  4. у меня папка кеш пустая и без прав 777. smile И вордпресс мне ничего не говорит и опции в настройках я что-то по-поводу кеширования не встречал...

  5. 2DARKMAN:

    И в wp-config.php где-то на 22-23 строчке не предупреждали?)

    Хотя я, признаться, тоже почему-то быстро забыл об этом, хоть и видел :smile:

  6. а у меня всё как обычно

  7. Был 473 кб, после удаления RSS стал 99 кб. После остальных очисток 93, дальше страшно удалять ) спасибо, Максим!

  8. причём здесь он? я туда даже не заглядывал и не должен. smile там всего 22 строчки smile) где ты 23 нашел не знаю

  9. Только вчера чистил эту таблицу :mrgreen: а тут блин статья появилась... не поверите но у меня она весила 2,300 килобайт, почистил теперь 200 килобайт... блог прям ожил :mrgreen:

  10. 2DARKMAN

    Дядечка чужой чтоли ставил блог?

  11. Skop

    когда ставишь вордпресс, то заглядывать в конфиг разве надо? Я уже не помню. МОжет забыл уже, если туда надо вводить данные по базе.

    ок, проехали.

    объясните тогда, почему у меня папка кеш пустая и где это управляется и при каких условиях. Спасибо. smile

  12. Написал ответ, и, блин, как обычно отправил забыв вписать код "только нижние". Кликаешь назад, а ничего нету)

    Кстати не первый раз, поэтому желание комментировать начисто отпадает

    Поэтому отвечу кратенько этот раз - смотрите тут

  13. Ок, спасибо. А стоит ли его вообще включать?:

    з.ы.: по-поводу комментариев, в опере все ок с этим.

  14. так и не понял смысла большого чистки: почистил я кучу строк, удалил много этих РСС_с_буква-цифрами и после первого захода в админку снова эти РСС загружаются (блог разработчиков вордпресса) и снова таблица с 250кб до 500кб увеличивается

  15. 2007-08-21 в 12:28:25 | Максим

    У тебя наверное очень молодой блог. smile Я сталкиваюсь с тем, что в базе остаются старые rss_, которые по-идее должны заменяться на новые. Ну и плюс не забывай про мусор от плагинов.

  16. блогу 8мес

    взял сейчас открыл в phpmyadmin строку эту с "планеты вордпресс" и просто очистил ее содержимое а саму запись оставил. теперь не грузится smile вопрос как ее вообще убрать этот блог оттуда в админке. мне он как то сто лет не нужен

  17. упс. пока писал все такие загрузилось снова :( правда не сразу

  18. 2007-08-21 в 13:32:24 | Максим

    Отключить можно в файле index.php в wp-admin. Вверху есть js-скрипт, можно его закомментировать. Я правда не пробовал, но должно сработать.

  19. удалил и новости разработчиков и "планету"/ оставил только входящие ссылки. таблица больше не растет но и шустрее шевелитьcя вроде не стало. как было так и осталось все. но глаза теперь не раздражает эта груда ячеек

    кстати если кому интересно что осталось в файлах после вырезания:

    ссылки на текстовые файлы

    index

    index-extra

  20. сорри вторая ссылка кривая. (копи-пасте не рулит)

    правильная http://lecactus.ru/images/_index-extra.txt

  21. "эти РСС загружаются (блог разработчиков вордпресса) и снова таблица с 250кб до 500кб увеличивается"

    я вобще открываю шаблон админки и удаляю оттуда всё, что импортируется, я при заходе в админку грузится быстрее, и ничего не лишнего нету

  22. я вобще открываю шаблон админки и удаляю оттуда всё, что импортируется,

    Зачем делать это вручную? Есть же специальный плагин - Dashboard Lite.

  23. Dimox, плагином ты добавляешь нагрузку на сервер, а так удалил всего две строки в файле wp-admin/index.php

    и всё. Привыкли всё плагинами :???:

  24. Максим, я в предыдущем комменте, в теге code написал , а оно исчезло... LOL

  25. Что ж такое, не пишутся дивы..

  26. Dimox, плагином ты добавляешь нагрузку на сервер

    Эта нагрузка никоим образом не заметна, поэтому не стоит только лишь от осознания ее возможности, отказываться от этого удобства.

    А чтобы вывести любой тег в комментарии, например, див, нужно написать так: <div>

  27. Не буду ничего выводить :neutral: тебя всё равно не переубедить!

  28. Ага, верно, не переубедить ))))

    Hичего и не надо выводить, тем более, что этот код я видел в письме с комментом.

    А о том, как выводить, я написал лишь для сведения, на будущее wink.

  29. У меня в этой папке пусто. Не наполняется содержимым. Возможно, блог ещё молод, хотя не знаю, вряд ли это является причиной.

  30. Для версии 2.5 эта статья актуальна ?

РЕКЛАМАТурфирма санрайз тур. САНРАЙЗ ТУР (SUNRISE TOUR.