Я запускаю веб-сайт с php/mysql с большим количеством посещений, и я рассматриваю возможность кэширования наборов результатов в общей памяти, чтобы уменьшить загрузка базы данных.
Однако, теперь кеш запросов MySQL включен, и, похоже, он выполняет довольно хорошую работу, поскольку, если я отключу кеширование запросов, использование CPU сразу же перейдет на 100%.
Учитывая эту ситуацию, я не знаю, будет ли кэширование результирующих наборов (или даже сгенерированного HTML-кода) локально в общей памяти с помощью PHP, приведет к заметному улучшению производительности.Кэш запросов MySQL и кеширование наборов результатов на прикладном уровне
Есть ли у кого-нибудь опыт в этом вопросе?
PS: Пожалуйста, избегайте предлагать решения для тяжелой артиллерии, такие как memcached. Сейчас я ищу простые решения, которые не требуют слишком много времени для внедрения, развертывания и обслуживания.
Edit:
Я вижу, что мой комментарий о Memcached отклонился ответы от фактической точки, которая является ли кэширование БД запросы в прикладном уровне приведут к заметному воздействию Performace учитывая, что в результате этих запросов уже будучи кэшируется на уровне БД.
Как выглядит ваше использование данных? В основном читает и очень мало пишет, или есть много активности записи? –
Использование процессора, пикирующего до 100%, является подозрительным. Большинство баз данных заканчиваются привязкой IO, а не ЦП. –
Существует много записей, но мне удалось упорядочить таблицы таким образом, что наиболее часто запрашиваемые таблицы изменяются реже. Вот почему кэш запросов MySQL работает очень хорошо. – GetFree