1

주제: 검색관련해서 쿼리 하나 캐쉬됩니다.

검색이 오래걸려서 쿼리를 보고 있던중 똑같은 내용의 쿼리인데 캐쉬가 안되더군요.

이유를 보니 where 절의 질의문 순서가 바뀌고, Entries e 뒤에 스페이스가 하나 더 있더군요.

암튼 아래와 같이 바꾸니 캐쉬처리가 되더군요.  version은 1.5.3.1입니다.

/lib/model/blog.entry.php

function getEntryListWithPagingBySearch($blogid, $search, $page, $count) {
    global $database, $suri, $folderURL;
    $search = escapeMysqlSearchString($search);
    $cond = strlen($search) == 0 ? 'AND 0' : "AND (e.title LIKE '%$search%' OR e.content LIKE '%$search%')";
    $visibility = doesHaveOwnership() ? '' : 'AND e.visibility > 1 AND (c.visibility > 1 OR e.category = 0)';
    $sql = "SELECT e.blogid, e.userid, e.id, e.title, e.comments, e.slogan, e.published 
        FROM {$database['prefix']}Entries e 
        LEFT JOIN {$database['prefix']}Categories c ON e.blogid = c.blogid AND e.category = c.id 
        WHERE e.blogid = $blogid AND e.draft = 0 $visibility AND e.category >= 0 $cond 
        ORDER BY e.published DESC";
    return fetchWithPaging($sql, $page, $count, "$folderURL/{$suri['value']}");
}

모델쪽 쿼리중에 이런거 스페이스 하나때문에 캐쉬가 되나 안되나가 판가름 나네요.

엽기민원 (2007-11-14 17:01:19)에 의해 마지막으로 수정