2011-04-24 3 views
0

페이지에서 여러 개의 mysql 쿼리를 사용하여 mysqli prepare 문을 사용하여 여러 테이블의 데이터를 가져옵니다.캐시 mysql 쿼리 결과?

페이지의 데이터베이스 테이블에서 20 개의 쿼리를 사용한다고 가정 해 보겠습니다. 쿼리가 너무 많으므로 몇 분 동안 캐시에 결과를 저장하여 성능을 향상시키고 싶습니다. 좋은 생각이야? 그렇다면 어떻게 캐시를 사용하여 결과를 저장할 수 있습니까?

$city = "Amersfoort"; 

if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) { 
    $stmt->bind_param("s", $city); 
    $stmt->execute(); 
    $stmt->bind_result($district); 
    $stmt->fetch(); 
    printf("%s is in district %s\n", $city, $district); 
    $stmt->close(); 
} 

감사합니다.

+0

요구 사항에 맞는 mysql 쿼리 캐시 (http://dev.mysql.com/doc/refman/5.1/en/query-cache.html)가 맞지 않습니다. – zerkms

답변

1

SQL 문장의 처리가 저렴하면 캐시 할 필요가 없을 것입니다. 상당한 계산이 필요하거나 대규모 데이터 세트에서 실행되는 경우 캐시가 필요할 수 있습니다. 캐시는 SQL 쿼리보다 빠를 필요가 있다는 것을 기억하십시오.

  • 파일 캐시 데이터를 serialzing 쿼리의 해시 같은 이름의 파일로 저장 :

    는 PHP에 캐시하는 방법은 여러 가지가 있습니다. 그래서 캐시 수명, 동시 접근을 얻고 것은 apc_add

같은 APC 기능을 사용하여, 즉 캐시로 PEAR의 Cache 또는 Cache_Lite
  • memcached
  • 공유 메모리로 즉, 그것을 수행하는 라이브러리를 사용하는 것을 고려 - 그래서 어려운 것을 기억하십시오

    단일 쿼리 대신 전체 페이지 또는 페이지의 일부를 캐시 할 수도 있습니다.