2017-02-14 25 views
4

Я использую инфраструктуру symfony, и я пытаюсь выяснить способ значительно сократить действие чтения базы данных, я слышал об использовании кеширования для обслуживания данных, к которым обращаются очень часто, и кеш обновляется, когда данные обновляются, это почти все, что я знаю о предмете, я архивирую данные в другую таблицу и используя представления, чтобы объединить две таблицы, чтобы получить объединение двух таблиц (например: - турнир_current содержит данные текущего турнира, турнир_архив содержит данные прошлых турниров, представление, называемое турниром, сливается и показывает объединение двух таблиц). Мне нужно кэшировать таблицы/представления (?), чтобы избежать множественного чтения базы данных для одних и тех же неизменяемых данных, поэтому база данных кеширование/кеширование запросов (?) было бы очень полезно.Symfony - кэширование наборов результатов базы данных

так как я это реализовать в Symfony

  1. есть простой в использовании пакет?
  2. Могу ли я хранить файлы кеша на amazon s3?
  3. есть простое решение на основе xml? если да, то как это сравнится с кешированием symfony?
  4. Мне нужны эти методы для совместимости с postgreSQL и доктриной.
+0

Вы должны взглянуть на фреймворка результат кэшей, отложенной загрузки и так далее. Когда этого недостаточно, подумайте о денормализации вашей модели. Я не думаю, что есть набор для чего-то вроде файла кеша в S3, потому что это довольно дикая идея. –

+0

Какая версия Symfony? – Jeet

+0

Для этого лучше использовать сервер Memcached (или альтернативный). У доктрины есть поддержка этого. – SpartakusMd

ответ

4

Вы ищете «кэш второго уровня»

Вам не нужен какой-либо сверток фильме - это в доктрине, вам просто нужно настроить.

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/second-level-cache.html

+0

+1 вы думаете, этого будет достаточно для архивирования данных? а также насколько велики будут файлы кэша для DB среднего размера, формата файла и т. д.? где он будет храниться и я могу сохранить его на внешнем сервере, например: S3, в будущем может возникнуть щедрость по этому вопросу, если потребуется больше данных – Dheeraj

+0

, если этого будет недостаточно, тогда подумайте о кешировании данных на redis –

+1

более подробное описание в вашем комментарии было бы полезно, в какой момент вы скажете, что кеш доктрины неадекватен и начать использовать redis – Dheeraj