2013-10-18 3 views
2

Memcache의 개념을 이해하지만 의심 스럽습니다.PHP의 기본 Memcached 구현

말할 수 있습니다 :

나는 세 개의 열이있는 테이블 '사용자'가 있습니다 사용자 ID 이름 과 암호를.

쿼리는 $ query = "select * from users"입니다. 처음으로 쿼리가 실행되고 memcache에 md5 ($ query) -> 결과로 저장됩니다.

그래서이 쿼리가 다음에 실행되면 $ query의 md5 해시가 실행됩니다. 일치하고 결과가 memcache에서 가져옵니다.

하지만 위 쿼리에서 매개 변수를 2 개만 선택해야하는 경우 어떻게해야합니까?

like $ query = 사용자 이름, 사용자의 비밀번호를 선택하십시오.

그럼 어떻게해야합니까? "select username, password from users"에 필요한 모든 데이터가 'select * from users'의 키에 해당하는 결과에 존재하기 때문에 사용자로부터 select *와 동일한 키에서 가져 오는 것이 이상적입니다.

어떻게 이러한 문제를 관리합니까?

답변

1

Memcache/PHP는 데이터베이스의 내부 구조를 알지 못합니다. 필요한 경우 이러한 종류의 최적 화를 수동으로 수행해야합니다.

그렇지 않으면 mysql의 쿼리 캐시는 이러한 종류의 지능형 캐싱이 필요한 경우 더 적합 할 것입니다.

2

사용자가 선택한 기준에 따라 변경되지 않은 키 아래에 "사용자"결과를 저장해야 할 수도 있습니다. 이미 전체 사용자 테이블을 키 md5에 저장했습니다 ("select * from users"). 그래서 당신은 할 수 있습니다

  1. 이 즉 사용자 이름과 암호를 포함하는 전체 사용자 테이블, 원래 저장된 무엇을 반환합니다 Memcache는
  2. 에서 저장된 결과를 가져옵니다.
  3. 그런 다음이 결과를 사용하고 필요한 데이터의 하위 집합 만 사용하십시오.
+0

내 생각은 정확히이 질문에 대한 대답 이었음에 틀림 없습니다. –