Вам нужен некоторый вид кеша здесь, конечно; слои кэширования внутри и вокруг базы данных значительно менее эффективны, чем те, которые может обеспечить memcached.
Тем не менее, если вы пришли к выводу, что правильная вещь заключается в том, чтобы кэшировать сам запрос, а не кэшировать контент, который вы генерируете на основе запроса, я думаю, что вы спешите с выводами - требуется дополнительный анализ.
Какие данные, кроме содержимого этих запросов, используются во время генерации вывода? Будет ли смысл иметь кэш страницы или фрагмент страницы (или кэширование обратного прокси-сервера впереди)? Действительно ли необходимо выполнять эти запросы "часто"? Как часто меняются базовые данные? Есть ли у вас какие-либо события, когда это происходит?
Кроме того, SELECT *
запросы без предложения WHERE
являются «запахом кода» (означающим, что, возможно, что-то делается неправильно), особенно если не все извлеченные данные отображаются непосредственно пользователю.