Модератор
Yui
(@fierevere)
永子
в wp_options обычно сохраняются данные объектного кеша,
если они по каким-то причинам не были очищены по истечению срока кеширования, то можно воспользоваться
https://wordpress.org/plugins/delete-expired-transients/
(или иным плагином с этой функцией)
Также можно в принципе избежать хранения транзиентов в таблице MySQL
установив объектный кеш, например на основе Redis
https://ru.wordpress.org/plugins/redis-cache/
(требует поддержки хостинга! наличия ПО Redis и расширения PHP)
или вот такой вариант недавно нашла,
https://ru.wordpress.org/plugins/docket-cache/
Данные объектного кеша сохраняются в Zend Opcache,
впрочем, на перегруженном и плохо сконфигурированном хостинге это может работать неэффективно, но зато обычно ничего дополнительного для установки не требуется.
аа, и по объектному кешу — стоит мемкеш, работает:
Объектный кэш
Попадание 99,8% (хиты 1 651, пропущено 3)
Persistent object cache plugin in use
проверил на похожей конфигурации магазине, там дублирующийся запросов 2 и то не от вп_опшинс…
Модератор
Yui
(@fierevere)
永子
не-а, нету их
ну так если мемкешед стоит, то и нету )
Тогда становится совсем непонятно, что именно пытается получить ваша установка WP из wp_options аж 500+ запросами, тем более там все должно быть уже усажено в memcached
Функция wp_load_alloptions() сначала получает список всех опций с флагом autoload = 'yes'
, а затем сохраняет его в объектном кеше — как минимум до следующей загрузки страницы, а если установлен Memcached или Redis, то и на более долгий срок, пока не будет добавлена, изменена или удалена одна из опций.
Если при многократном вызове функции вместо чтения из кеша снова и снова выполняется SQL-запрос — предполагаю, что не срабатывает добавление в кеш: либо опций слишком много, либо некорректно настроен Memcached, либо что-то происходит с фильтром pre_cache_alloption
и т.д.
sergeybiryukov понял, спасибо.
Как решилась проблема:
заремил строки в впконфиге:
//define( ‘WP_CACHE_KEY_SALT’, ‘sadsa23435аwewewewe2c23c3c’ );
//$memcached_servers = array( ‘127.0.0.1:11211’ );
wp-content/object-cache.php_
и сразу все попустило…. кол-во запросов в квери монитор снизилось в 4 раза, дубли ушли, сайт просто летает (он на выделенном сервере)… Спрашиваю у хостеров — меняли какие-то настройки, апгрейдили что-либо? — нет, ничего не менялось и не могло меняться…
на сайте тоже ничего не менялось, пару лет назад как все поставили так и стоит, месяца 5 назад может все плагины обновили…
вот как квери монитор теперь показывает — https://i.imgur.com/mTe5HmV.png
Модератор
Yui
(@fierevere)
永子
я бы не назвала отключение объектного кеша решением,
хотя да, то, что при его отключении все стало лучше и проблема ушла,
это подтверждает написанное Сергеем
Разбираться тут надо с кешем… С memcached бывают странности, иногда.. в отличие от Redis