Прочитав немного на эту тему:
Кэширование MySQL запросов
http://www.danga.com/memcached/
Моя проблема с кэшированием SQL:
http://www.petefreitag.com/item/390.cfm
http://framework.zend.com/manual/en/zend.cache.html#zend.cache.introduction
У меня есть очень уникальный (узкий) набор запросов, и я думаю, что я мог бы довольно легко реализовать некоторое кэширование в моих текущих исполняемых файлах FastCGI C API (НЕ PHP).
Zend описывает их структуру как:
записи кэша хранятся через внутренние адаптеры (File, Sqlite, Memcache ...) через гибкую систему идентификаторов и тегов.
КАК это реализовано?
Поскольку один и тот же запрос может возвращать разные результаты, если таблица была изменена, мне нужно отслеживать не только запросы, но также UPDATE, INSERT и DELETE (пока MySQL). Поскольку это происходит только с одним из моих процессов, легко добавить оператор, который удаляет кеш при изменении таблицы.
Клиентам разрешены только SELECT, в этом случае я мог бы хэшировать запросы и сохранять их в хеш-таблице или индексе btree вместе с указателем на файл, содержащий результаты.
Есть ли лучший способ?