2012-03-07 3 views
2

저는 Wordpress를 사용하고 사이트 특정 플러그인을 개발했습니다. 게다가 내 테마는 백엔드의 플러그인 요구 사항에 맞게 사용자 정의되었습니다.과도 전압을 사용하지 않을 때는 언제 사용합니까?

마지막 날에 나는 Wordpress에서 과도기를 들여다 보았다. 어떤 자습서에서는 그들은 "을 말하고 있습니다. 사용자 정의 쿼리를 사용하고 그 결과가 캐시 가능한 경우 : 사용 임시 변 환". 좋은 소리지만 진짜 이점을 얻기 위해 과도기를 사용해야 할 때가 궁금합니다. 즉, 과도 사용시에도 백그라운드에서 적어도 두 개의 쿼리가 있어야합니다. 그렇지 않습니까? 타당성 검사를위한 첫 번째 것, 일시적 자체에 대한 두 번째 것.

과도기 즉 사용자 지정 WP_Query를 사용하면 정말 유용합니까? 도움과 생각을 많이 해주셔서 감사합니다.

답변

3

상당히 직설적입니다. 이것은 'memcache'형식으로 개체를 저장할 수있는 리터럴 클래스 도우미입니다. 먼저 우리가 키가 의미 정확한 값을 (우리가 이전에 선언 된)를 사용하여 언제든지 액세스 할 수 있습니다, 우리는 우리의 트리거를 만들었으므로 이제 과도

function do_something_here($callback_param = 'value'){ 
    $key = 'do_something_' . $callback_param;//set the name of our transient equal to the value of the callback param being passed in the function. 
    $my_query = get_transient($myKey); //if we've stored this request before, then use it. 
    if($my_query !=== false){ 
    //we found a previous existing version of this query. let's use it. 
    return $my_query; 
    }else{ 
    //it doesn't exist, we need to build the transient. 
    //do our database querying here, global $wpdb; etc 
    //We are going to pretend our returned variable is 'george' 
    $value = george; 
    $length = 60*60*24; //how long do we want the transient to exist? 1 day here. 
    set_transient($key, $value, $length); 
    return $value; 
    } 
} 

을 설정하고 '$ 키'의 이름에 바인딩 .

echo 'I wanted to do something, so : ' . do_something('value') . ' is what i did! '; 

이 형식을 사용하면 세계와 같은 '캐시'에서 검색어를 보유하고이를 사용하여 응답을 생성 할 수 있습니다. 이것은 MySql에서 '트리거'이벤트를 사용하는 것과 비슷합니다. 실제로 이것은 긴 폴링 (long polling)이라고하는 기술의 일부입니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 질문은 또 다른 하나, 당신을 오해하게해서 유감 : 간단한 WP_Query()보다 일시적 효과를 사용하고 있습니까? 내 상상력에서 일시적 사용은 WP_Query ('cat = 32')를 통해 게시물을 선택하는 것보다 더 많은 자원과 쿼리가 필요합니다. – Phil

+0

방법 및 데이터에 따라 다릅니다. 크고 시간이 많이 소요되는 쿼리가 있으면이를 임시로 저장할 수 있습니다. 그런 다음 데이터베이스에 쿼리 할 필요가없는 일시적인 호출을 사용하여 해당 값을 항상 사용할 수 있습니다. 단순히 값 변경을 모니터링합니다. 내가 언급 한 것처럼 그것은 memcache와 조금 비슷하게 작동합니다. 여기서 과도기는 많은 쿼리가 진행되는 사이트 및 여러 데이터에 사용하는보다 효과적인 방법입니다. 또는 푸시 기술 (Long Polling, Comet 등)과 같은 것들을 필요로하는 사이트의 경우 -> http://en.wikipedia.org/wiki/Push_technology – Ohgodwhy

+0

그러나 쿼리가 "거대한"경우와 일시적인 " 거대한 "쿼리 자체에 비해? 즉 조인 또는 서브 쿼리가없는 단 하나의 테이블에서 5 개의 게시물을 선택하는 경우 : 선택된 게시물 5 개가 동일하게 유지 되더라도 과도기에서 결과를 캐싱하고 일시적 요청을하는 것보다 일반 쿼리가 더 빠르고 효율적이지 않습니까? – Phil

관련 문제