Yii поддерживает кеширование (лично я никогда не использовал Yii, поскольку я человек Symfony, но это не имеет значения)
Вы можете установить срок действия кэшированного файла, скажем, 6 часов. Через 6 часов, когда пользователь запросит страницу, ваша страница будет обновлена событиями из базы данных.
1 запрос на страницу - это на самом деле ничто, и даже несмотря на то, что вы получите небольшой прирост производительности с помощью кэширования, на самом деле не стоит затрачивать усилия на реализацию только одного запроса.
У меня есть сайт, который на некоторых страницах должен выполнять до 200+ запросов. Я кэшировал страницы так, чтобы база данных вызывалась только каждые несколько минут, чтобы убедиться, что я не выполняю одни и те же запросы при каждой загрузке страницы. то есть через 5 минут, когда пользователь отправляет запрос, срок действия файла кэша истек, а затем из базы данных загружается новый контент.
Вы можете сделать оптимизацию. Например, взгляните на YSlow. Используя этот плагин Firefox, вы можете посмотреть, где на вашей странице горлышки бутылок. то есть много фоновых изображений? превратить его в спрайт. Не используете CDN для загрузки Jquery? затем используйте CDN. Изменение размеров изображений с использованием свойств ширины и высоты? Фактически изменить размер изображения и т. Д.
С точки зрения производительности PHP. Взгляните на APC , который является ускорителем PHP. Вы должны заметить значительный прирост производительности, когда ваше PHP-приложение становится сложным, и вы выполняете много кода. Однако для простой страницы, вызывающей только один запрос, вы, вероятно, не заметите значительного прироста производительности.
Для mysql используйте индексы. Если вы ищете событие, используя столбец имени события, убедитесь, что у вас есть индекс для этого столбца.
Для фреймворков вы можете использовать то, что хотите. Все они могут быть оптимизированы для быстрого запуска. Выбор за вами.
Итак, подведем итог:
За то, что ты делаешь. Если это всего лишь один запрос на странице, то нет смысла использовать кеширование и фреймворк. Если ваше приложение действительно становится сложным, и вы начинаете использовать множество запросов, тогда было бы полезно использовать инфраструктуру (разделение кода, ORM, маршрутизацию, проверку формы и т. Д.) И воспользоваться возможностями кэширования, которые предлагает инфраструктура.