검색 기능을 갖춘 일종의 전자 상점을 설정해야합니다. 모든 검색 요청에 대한 검색을 더 효율적으로 만드는 Memcache db 모델
나는 다음과 같은 구조를 조회 할 수있어 :제품 :
-name
이
--tag
-ingredients을
--ingredient
--- 태그 -tags
---- 태그
--- 옵션
---- 옵션
----- 옵션 세부 사항
-variants
--variant
--- 태그
---- 태그
--- 옵션
---- 옵션 측정
---- 값
--- 가격
이제 쿼리 수를 상상해보십시오. 데이터베이스가 정규화되었습니다 (제 2 수준이라고 생각합니다). 여기에있는 한 가지 확실한 해결책은 매우 오랜 시간 동안 (제품 세트, 재료 세트, 속성 세트, 태그 세트 등) 가져온 각 모델 결과 세트를 저장하는 것입니다 (제품 및 그 속성은 자주 업데이트되지 않고 admin에 의해서만) 그곳에서 질의를하십시오.
그래서 어떻게 생각하십니까? db 쿼리 수를 줄이는 더 좋은 방법이 있습니까?
제가 생각한 또 다른 옵션은 스핑크스를 사용하는 것입니다. 그러나 전체 텍스트 검색이 필요하지 않으며 태그와 비슷한 필드와 정확하게 일치해야합니다.
미리 감사드립니다.
+1 - 내가 추가 거라고 유일한은 그가 적절히 긴 캐시 타임 아웃을 설정하려고합니다. Django + memcached rocks, 특히 캐시를 제어하는 세분성의 다양성. –
더 이상 동의하지 않을 수 있습니다. 내가 주어진 줄 알았는데 시간 제한을 두지 않았다. 내 대답을 업데이트했다. – AutomatedTester
최대 값은 '영원히'(의미가'memcache'가 다시 시작될 때까지)로, 만료 값을 '0'으로 설정하면된다. – Nate