주제: 검색관련해서 쿼리 하나 캐쉬됩니다.
검색이 오래걸려서 쿼리를 보고 있던중 똑같은 내용의 쿼리인데 캐쉬가 안되더군요.
이유를 보니 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)에 의해 마지막으로 수정