2017-02-14 2 views
4

symfony 프레임 워크를 사용하고 있으며 데이터베이스 읽기 작업을 상당히 줄이는 방법을 찾기 위해 노력하고 있습니다. 자주 액세스하는 데이터를 제공하기 위해 캐싱을 사용하는 것에 대해 들었습니다. 데이터가 업데이트되면 캐시가 업데이트됩니다. 이것은 제가 주제에 대해 알고있는 모든 것입니다. 다른 테이블에 데이터를 보관하고 뷰를 사용하여 두 테이블을 병합하여 두 테이블의 합집합을 얻습니다. (예 : - tournament_current는 진행중인 토너먼트 세부 정보를 보유하고 있습니다. tournament_archive는 과거의 토너먼트 세부 사항을 보유하고 있으며, 토너먼트 병합이라는보기가 두 테이블의 병합을 표시합니다.) 동일한 불변의 데이터에 대한 다중 데이터베이스 읽기를 피하기 위해 테이블 ​​/ 뷰 (?)를 캐시해야하므로 데이터베이스 캐싱/쿼리 캐싱 (?)은 매우 유용합니다.Symfony - 데이터베이스 결과 집합 캐싱

그래서 내가 어떻게

  1. 이 번들을 사용하기 쉬운이 심포니에서 이것을 구현합니까?
  2. 아마존 s3에 캐시 파일을 저장할 수 있습니까?
  3. 여기에 XML 기반의 간편한 솔루션이 있습니까? 그렇다면 심포니 캐싱과 어떻게 비교 될까요?
  4. postgreSQL 및 doctrine과 호환되도록 이러한 메서드가 필요합니다. 당신은 "두 번째 레벨 캐시"

    를 찾고 있습니다

+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