Таблица wp_options
В wp_options
таблице хранится несколько типов данных для вашего сайта, в том числе:
- настройки для ваших плагинов, виджетов и тем
- временно кэшированные данные
- URL-адрес сайта и домашний URL-адрес
- настройки категории
- автоматически загружаемые данные
Примечание
Префикс options
таблицы по умолчанию — wp_
. Префикс options
таблицы может отличаться, если вы используете собственный префикс, например custom_options
.
Проверьте размер ваших автоматически загружаемых данных
Если ваш веб-сайт работает медленно и вы получаете следующее сообщение в статистике базы данных: consider autoloading only necessary options
, выполните следующие действия.
Проверьте размер автоматически загружаемых данных:
- Войдите в свой клиент MySQL .
- Выберите свою базу данных (по умолчанию
pantheon
) и нажмите наSQL
вкладку. - Запустите следующий код, чтобы увидеть общее количество автоматически загружаемых данных и количество данных:
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';
Если ваши автоматически загружаемые данные меньше 1 МБ, маловероятно, что автоматически загружаемые данные замедляют работу вашего сайта. Если ваши данные превышают 1 МБ, у вас автоматически загружается большое количество параметров, и это, скорее всего, замедляет работу вашего сайта.
Проверьте свои самые популярные автоматически загружаемые элементы
- Запустите следующий код, чтобы увидеть самые популярные элементы с автоматически загружаемыми данными:
SELECT option_name, length(option_value) FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 20;
- Запустите следующий код, если вы хотите отключить автозагрузку для элемента.
вместо:update_option( 'wp_option', 'value' );
используйте:
update_option('wp_option', 'value', 'no');
no
в третьем параметре, иначе по умолчанию автоматически будет установлено значение yes
.Советы по минимизации автоматически загружаемых данных
Мы рекомендуем свести к минимуму автоматически загружаемые данные, чтобы повысить производительность вашего сайта. Ниже мы предоставили несколько советов по сокращению автоматически загружаемых данных.
Удалите транзитный кеш
WordPress Кэширует данные в Transients (транзитный кеш) в течение установленного периода времени. Хотя Transients сохраняются только временно, они могут стать чрезмерно большими и замедлить работу вашего сайта.
Запустите следующий код, чтобы очистить временные данные:
SELECT *
FROM `wp_options`
WHERE `autoload` = 'yes'
AND `option_name` LIKE '%transient%'
Избегайте использовать транзитный кеш
Вы можете использовать кэш объектов, чтобы свести к минимуму использование временных данных внутри wp_options
таблицы.
Рекомендации разработчику
Особенностью работы WP является то, что система подгружает все данные, где прописано autoload
= yes. Не имеет значения разбиты эти данные, как отдельные строки таблицы или хранятся в виде serialize или json в одной ячейке.
Я рекомендую использовать json, в котором хранить все настройки для вашей темы или плагина.
Преимущества такого хранения данных:
1) В отличии от serialize. При прямом изменении вложенных данных, сериализованные данные, которые используются в WP по умолчанию, могут быть повреждены. Для изменения вложенных данных значение ячейки нужно десериализовывать, изменить и сериализовать обратно. Что проблемно и неприятно.
2) В отличии от строк. Если хранить данные настроек отдельными строками в БД, то таблица может сильно разрастись + разрозненными данными сложно управлять. Можно забыть какая настройка относится к вашей теме или плагину, какая нет. + может быть конфликт имен. Сложнее контролировать.
3) JSON. Легче посчитать объем используемых данных настроек
4) JSON. Данными в JSON представлении проще оперировать в рамках кода. Можно вносить изменения в класс или массив настроек и сохранять как единое целое.
5) Ничего не забудешь, т.к. настройки хранятся в единой сущности (ячейке), которую проще найти и не потерять.