Если вы просто собираетесь кэшировать результаты запроса непосредственно на основе строки запроса, кеш запросов Mysql уже сделает это за вас. Не изобретай велосипед. Единственная потенциальная разница заключается в том, что кеш запросов Mysql агрессивно аннулируется, поэтому устаревшие (устаревшие, неверные) данные никогда не возвращаются; в зависимости от того, как вы справляетесь с аннулированием, ваша стратегия может дополнительно снизить нагрузку на базу данных, но за счет обслуживания устаревших, регулярно устаревших данных.
Кроме того, вы действительно не сможете выборочно истечь ваши различные ключи кеша, когда произойдут обновления (как вы узнаете, какие строки запроса должны быть устаревшими при запуске вставки / обновления?); в результате вам просто нужно установить короткое время истечения (вероятно, в секундах), чтобы минимизировать время, которое вы обслуживаете устаревшими данными. Это, вероятно, будет означать низкую частоту обращений в кэш. В конце концов, описанная вами стратегия кэширования проста в реализации, но не очень эффективна.
Обязательно прочитайте раздел «Общие подходы к проектированию» часто задаваемых вопросов по memecached. Хорошая стратегия кэширования удаляет / заменяет кэшированные данные сразу после обновления - это позволяет кэшировать данные часами / днями / неделями и одновременно никогда не предоставлять пользователям устаревшие данные.