Недавно я столкнулся с подобной проблемой, и вот как я ее решил ...
Шаг 1: Добавьте файл .user.ini
в корневой каталог вашего проекта (еслиу вас его еще нет) и следующие директивы для файла, чтобы включить плагин mysqlnd_qc
и установить TTL для кэша:
; Enables MySQL query caching by PHP
mysqlnd_qc.enable_qc = 1
; Set a default TTL for the caching in seconds
mysqlnd_qc.ttl = 30
Шаг 2: Добавитьподсказка SQL перед любым запросом, который вы хотите кэшировать с помощью mysqlnd_qc.
Вот подсказка, которую необходимо добавить к запросу:
"/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" .
Вот примериспользования:
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 1");
Это должно сделать это!Вы также можете кэшировать все запросы, используя директиву mysqlnd_qc.cache_no_table = 1
.
Все это происходит из документации PHP, здесь: http://php.net/manual/en/mysqlnd-qc.quickstart.caching.php
Надеюсь, это поможет!