2013-01-27 3 views
0

정적 함수를 사용하여 최근 기사 목록을 가져 오는 WAMP (PHP 5.4.3)에서 실행되는 Kohana 3.3 응용 프로그램이 있습니다. 페이지를로드하면 응용 프로그램 실행 시간 (Kohana Profiler를 통해)은 6.7 초입니다. get_recent 메서드 (빈 배열 전달)를 호출하지 않고 같은 페이지를로드하면 응용 프로그램 실행 시간은 0.3 초 ​​이됩니다.Kohana 정적 ORM 메서드의 실행 시간이 느림

이 정적 메서드는 문제를 일으키는 것을 나타냅니다. 원시 MySQL을 실행했으며 1.4 초이 필요합니다.

$articles = self::factory('user_articles') 
       ->join('articles', 'INNER')->on('user_articles.article_id', '=', 'articles.id') 
       ->order_by('user_articles.created_at', 'ASC') 
       ->limit(10) 
       ->group_by('articles.id')->find_all(); 

user_articles.article_id에와 articles.id에 인덱스가 있습니다 :

메소드 내부의 코드입니다. 질의를 최적화하거나 실행 시간을 단축하기 위해 할 수있는 일이 있습니까?

답변

0

created_at에 색인을 추가 할 수 있습니다. 원시 SQL이 도움이되는지 확인하십시오.
ORM을 사용하지 않고 DB Builder 쿼리를 실행하지 않는 것이 좋습니다.

0

echo Database::instance()->last_query으로 마지막 질의를 시도하고 MySQL EXPLAIN을 시도하십시오. 사용 된 색인이 표시됩니다.

추 신 : articlesusers에 몇 개의 행이 있습니까?