MySQL 테이블에 데이터를 캐시하는 테이블 (memcached를 공유하지 않으므로)이 있습니다.MySQL 키 딜레마
나는 페이지가로드되는 정적 데이터 후 다음 캐시 :
개념은 이것이다는 페이지를 조회
- 캐시가 다음 존재하지 않는 경우 다음 HTML 렌더링 및 캐시 테이블에 저장하십시오.
- 페이지가 캐시에 없으면 12 개의 쿼리 (메뉴, 페이지 콘텐츠, SEO, 제품 목록 등)를 실행 한 다음 렌더링 된 HTML을 테이블에 저장합니다.
캐시 테이블은 다음과 같이이다 :
이=cache=
url varchar(255) - primary key
page mediumtext
지금 나는 내가 (공유 호스트, memcached와 같은 캐싱 등)을 가지고 있지만 내 무엇을 기준으로, 옳은 일을하고 있다고 생각 URL이 varchar
인덱스하지만 때문에
때문에 숫자 ID를 (같은 int
)이다 빠르고, 고유 한 정수로 /contact-us/
또는 /product-category/product-name/
같은 URL을 변환하는 방법이 : 질문이 무엇입니까? 아니면 이것을 최적화 할 다른 방법이 있습니까?
정기적 AUTO_INCREMENT INT 기본 키를 사용하는 모든 해시 colisions에 정확한 URL을 검색, 해시와 캐시 된 모든 URL을 선택하고 고유 한 (그러나 주요되지 않음)로 URL을 저장하는 키가 들. 사물을 언급 할 때 int를 잡아 당기는 것이 더 쉽습니다. url 텍스트를 사용하여 auto_inc id를 찾습니다. –
그래서 아직 ID가 아닌 URL로 조회해야합니까? – Alexei
12 개의 쿼리를 캐시하고 싶습니까? 그다지 많지 않습니다. . . 복잡한 지 아닌지에 따라 다릅니다. 왜 mysql에 캐시를 저장하고, 파일 시스템에 파일을 만들어 캐시로 사용하는 것이 좋을까요? – Flukey