Огромная таблица wp_options

Вопрос или проблема

У меня проблема на сайте WP. Сайт зависает, потому что больше нет доступного дискового пространства.

Ищя, я обнаружил, что размер таблицы wp_options составляет 12 ГБ, но всего около 1100 строк:

вставьте описание изображения здесь

Есть какие-либо идеи? Заранее спасибо

[ОБНОВЛЕНИЕ 1]
Если я экспортирую таблицу wp_options, удаляю и импортирую, размер уменьшается до 9,7 МБ:

вставьте описание изображения здесь

У меня не было возможности оптимизировать таблицу с помощью OPTIMIZE TABLE wp_options, но я попробую это сделать, если это произойдет снова

[ОБНОВЛЕНИЕ 2]
Проблема все еще существует. Я попытался выполнить OPTIMIZE TABLE wp_options; без результатов:

вставьте описание изображения здесь

Мне было бы интересно подтвердить, что вы там видите, чтобы убедиться, что это действительно эта таблица. MySQL не должен так вести себя, если у вас действительно нет 12 ГБ в какой-то строке. Но если вы можете выполнять SQL в этой базе данных, возможно, вы захотите попробовать команду MySQL OPTIMIZE TABLE, которая просит MySQL проверить, может ли он оптимизировать хранилище для таблицы. Поэтому вы можете попробовать выполнить запрос:

OPTIMIZE TABLE wp_options;

Если это не сработает, пожалуйста, разместите полный скриншот причин, по которым вы думаете, что это эта таблица, и скажите, можете ли вы, например, выполнить mysqlbackup, так как удаление и восстановление таблицы может быть вариантом.

EDIT: Я немного поищу, и это может быть известная проблема в зависимости от настройки InnoDB в MySQL. Дополнительную информацию и потенциальные настройки для изменения можно найти здесь: https://www.ibm.com/support/pages/mysql-tables-grow-very-large-even-though-purger-enabled

Обратите внимание на следующее

  • Использование плагинов

    плагины, которые отмечают статус/изменение в таблице wp_options (сканирование безопасности, крон-задачи, API и т.д.)

  • Инспекция wp_options

    Столбец “Autoload”

    Автозагружаемые данные — это данные, которые загружаются на каждой странице вашего сайта на WordPress.

    и поля с именем “Transients” в столбце “option_name”

    стандартизованный способ хранения кэшированных данных в базе данных.

    Смотрите следующие ссылки для получения более подробной информации

    https://kinsta.com/knowledgebase/wp-options-autoloaded-data/
    https://wordpress.stackexchange.com/questions/6602/are-transients-garbage-collected
    https://developer.wordpress.org/apis/handbook/transients/

У одного из блогов, которыми я управляю, возникла эта проблема.
Таблица wp_option была загружена ГиБ ненужными данными.
Это происходит, когда некоторые плагины вставляют метаданные, данные уведомлений и т.д. в wp_option, но не удаляют эти данные. Некоторые из плагинов – Woo Commerce, Monster Insights, Astra theme… (Извините, если эта ошибка решается.)

Чтобы решить проблему:

  1. Сначала получите доступ к панели phpmyadmin.
  2. Перейдите в SQL и выполните следующую SQL команду:
    SELECT 'автозагруженные данные в KiB' as name, ROUND(SUM(LENGTH(option_value))/ 1024) as value FROM wp_options WHERE autoload='yes'
    UNION
    SELECT 'количество автозагруженных данных', count(*) FROM wp_options WHERE autoload='yes'
    UNION
    (SELECT option_name, length(option_value) FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 10)
    
  3. Найдите строку, которая потребляет ГиБ данных. (Ищите строку значения, которая имеет 6-значное значение.)
  4. Удалите строку.

Это решило проблему.

Ссылки:
https://kinsta.com/knowledgebase/wp-options-autoloaded-data/

Ответ или решение

Конечно! Вот полный ответ на ваш вопрос о проблеме с огромной таблицей wp_options в WordPress.


Проблема с таблицей wp_options в WordPress

У вас возникла серьезная проблема с таблицей wp_options, которая занимает 12 ГБ. При этом она содержит всего около 1100 строк. Это вызывает нехватку дискового пространства, что влияет на работу вашего сайта. Давайте рассмотрим возможные причины и решения этой проблемы.

Причины роста таблицы wp_options

  1. Автозагрузка данных (autoloading) из таблицы:

    • Данные, которые загружаются на каждую страницу вашего сайта, могут занимать много места. Они хранятся в колонке autoload таблицы wp_options. Часто плагины и темы создают очень большие записи в этой колонке, что может привести к значительному увеличению размера таблицы.
  2. Временные данные (transients):

    • Временные данные хранятся в wp_options и иногда могут накапливаться, если они не удаляются должным образом. Если плагины или темы создают временные записи и не очищают их, это может вызвать рост размера таблицы.
  3. Неактуальные данные из плагинов:

    • Некоторые плагины могут добавлять метаданные, уведомления и другую информацию в wp_options и не удаляют устаревшие данные. Примеры таких плагинов могут включать WooCommerce, Monster Insights и некоторые темы.

Решения проблемы

  1. Проверка автозагружаемых данных:

    • Выполните следующий SQL-запрос в phpMyAdmin, чтобы проверить, сколько данных загружается автоматически и какие записи занимают больше всего места:
      SELECT 'autoloaded data in KiB' as name, ROUND(SUM(LENGTH(option_value))/ 1024) as value FROM wp_options WHERE autoload='yes'
      UNION
      SELECT 'autoloaded data count', count(*) FROM wp_options WHERE autoload='yes'
      UNION
      (SELECT option_name, length(option_value) FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 10)
  2. Удаление ненужных записей:

    • Определите строки, которые занимают много места (обычно с 6-значными значениями в value) и удалите их. Будьте осторожны: убедитесь, что вы не удаляете важные данные.
  3. Очистка временных данных:

    • Запустите запрос для удаления временных данных:
      DELETE FROM wp_options WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%';
    • Это поможет удалить все временные записи, которые не нужны.
  4. Оптимизация таблицы:

    • После очистки данных выполните команду OPTIMIZE TABLE wp_options;, чтобы уменьшить размер таблицы, если это еще не было сделано.
  5. Анализ плагинов:

    • Проверьте установленные плагины и отключите или замените те, которые могут создавать избыточные данные в wp_options. Обновите плагин, если доступна новая версия, так как проблема может быть известным багом.
  6. Мониторинг ситуации:

    • Регулярно мониторьте размер таблицы и создавайте резервные копии базы данных, чтобы избежать серьезных проблем в будущем.

Следуя этим шагам, вы сможете значительно уменьшить размер таблицы wp_options и предотвратить подобные проблемы в будущем. Если проблема будет продолжаться, возможно, стоит обратиться за профессиональной помощью или провести аудит используемых плагинов и тем.

Оцените материал
Добавить комментарий

Капча загружается...