Теперь я вроде бы начинаю понимать недоумение kikasso по поводу SQL-кеша.
Задача для любознательных.
В my.cnf включаем кеш запросов только по требованию (query-cache-type = DEMAND, query-cache-size = 16M), и в моделе product вносим небольшую правку, в запросе с SQL_CALC_FOUND_ROWS после SELECT вставляем SQL_CACHE.
Теперь заходим в любую категорию, а из категории в любой товар. Возвращаемся обратно в ту же категорию и снова в любой товар.
Повторяем это несколько раз.
Потом идем в phpMyAdmin и делаем запрос на вывод информации по нашему кешированию запросов.
SHOW GLOBAL STATUS LIKE 'Qcache%'
Выйдет примерно следующая табличка.
Qcache_free_blocks 1
Qcache_free_memory 16754024
Qcache_hits 2
Qcache_inserts 249
Qcache_lowmem_prunes 0
Qcache_not_cached 76602
Qcache_queries_in_cache 0
Qcache_total_blocks 10
Обращаем внимание на Qcache_hits (запросов из кеша), Qcache_inserts (вставок в кеш), Qcache_queries_in_cache (количество закешированных запросов).
Удивляемся почему Qcache_queries_in_cache равно 0, офигиваем от соотношения вставлено/получено, и начинаем разбираться, как же так что кеш пишется, но практически никогда не читается, да и сам кеш куда-то испарился.
Жду ответы :-)