Оптимизация WP — Автозагрузка опций

Таблица wp_options

В wp_optionsтаблице хранится несколько типов данных для вашего сайта, в том числе:

  • настройки для ваших плагинов, виджетов и тем
  • временно кэшированные данные
  • URL-адрес сайта и домашний URL-адрес
  • настройки категории
  • автоматически загружаемые данные

Примечание

Префикс optionsтаблицы по умолчанию — wp_. Префикс optionsтаблицы может отличаться, если вы используете собственный префикс, например custom_options.

Проверьте размер ваших автоматически загружаемых данных

Если ваш веб-сайт работает медленно и вы получаете следующее сообщение в статистике базы данных: consider autoloading only necessary options, выполните следующие действия.

Проверьте размер автоматически загружаемых данных:

  1. Войдите в свой клиент MySQL .
  2. Выберите свою базу данных (по умолчанию pantheon) и нажмите на SQLвкладку.
  3. Запустите следующий код, чтобы увидеть общее количество автоматически загружаемых данных и количество данных:
    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 МБ, у вас автоматически загружается большое количество параметров, и это, скорее всего, замедляет работу вашего сайта.

Проверьте свои самые популярные автоматически загружаемые элементы

  1. Запустите следующий код, чтобы увидеть самые популярные элементы с автоматически загружаемыми данными:
    SELECT option_name, length(option_value) FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 20;
  2. Запустите следующий код, если вы хотите отключить автозагрузку для элемента:
    update_option( 'wp_option', 'value' ); to be 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) При прямом изменении вложенных данных сериализованные данные, которые используются в WP по-умолчанию, могут быть повреждены. Для изменения вложенных данных значение ячейки нужно десериализоввывать, изменить и сериализовать обратно. Что геморно и неприятно.
2) Если хранить данные настроек отдельными строками в БД, то при большом количестве строк нагрузка на БД возрастет.
3) Легче посчитать объем используемых данных настроек
4) Данными в JSON представлении проще оперировать