2014-02-19 2 views
0

시나리오 : PHP 슬림 앱에서 유효성 검사에 사용되는 클래스가 있으며,이 클래스가 통과하면 "컨트롤러"를 사용하여 RESTful 스타일 업데이트를 수행합니다.Doctrine ODM Document Reuse

내 질문은 : 쿼리를 수행 한 다음 관련이없는 코드 부분에서 일부 또는 전부의 동일한 문서를 반환하는 쿼리를 수행합니다. 교리 문서 관리자가 이전에 검색 한 문서를 다시 사용합니까?

미리 감사드립니다. Ben

+0

응용 프로그램에서 응용 프로그램이 동일한 DocumentManager 인스턴스를 사용합니까? 나는 그들이 발견 된 후에 DM이 물건을 기억에 남는다고 생각하고있다. 하지만 앱의 두 부분간에 아무 것도 공유되지 않는다면 별 도움이되지 않습니다. – Etzeitet

+0

예, 동일한 문서 관리자입니다. 그러면 현재 실행중인 문서가 계속 유지 될 수 있습니다. – Ben

+0

확인해야하지만 DM이 앱의 두 부분에서 공유되고 관련없는 코드가 첫 번째 검색어와 동일한 요청으로 실행되는 경우 DM에 이미 해당 문서가 메모리에 있어야합니다. 그러나 두 번째 쿼리에 아직 메모리에없는 문서가 포함되어있는 경우, 즉 Doctrine이 누락 된 문서를 가져 오거나 다시 모든 문서를 가져 오는 경우에는 어떻게 될지 모르겠습니다. – Etzeitet

답변

0

Doctrine을 확장하여 Redis와 같은 개체 캐시를 사용하여 데이터베이스에 대한 조회수를 줄일 수 있습니다.

또한 쿼리를 줄이기 위해 데이터 액세스 레이어에 코드를 추가했습니다. 이는 Doctrine의 업스트림입니다.

+0

doctrine 캐싱에 대한 자세한 내용은 다음을 참조하십시오. http://docs.doctrine-project.org/en/2.0.x/reference/caching.html – BillyBigPotatoes

+0

실제로 교리 수준에서 이미 APC를 사용하고 있습니다 ... 키 => 값 쌍 또는 컴파일 된 PHP를 저장하는 경우 확실하지 않습니다. – Ben

+0

APC는 PHP Byte 코드 캐시를 제공하며 메모리 기반 키/값 캐시도 제공합니다. 균형 잡힌 행동입니다. 여러 대의 서버를 사용하거나 많은 양의 데이터를 가지고 있다면 redis 나 memcache와 같은 전용 객체 캐시를 사용하는 것이 좋습니다. – BillyBigPotatoes