Kohana静态ORM方法的执行时间较慢

时间:2013-01-27 17:46:50

标签: php mysql kohana-3 kohana-orm kohana-3.3

我有一个Kohana 3.3应用程序,在WAMP(PHP 5.4.3)上运行,它使用静态函数来获取最近文章的列表。当我加载页面时,应用程序执行时间(通过Kohana Profiler) 6.7秒。当我在不调用get_recent方法(传递空数组)的情况下加载同一页面时,应用程序执行时间 0.3秒

这表明此静态方法导致问题。我运行了原始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_idarticles.id上有一个索引。我还能做些什么来优化查询或加快执行时间吗?

2 个答案:

答案 0 :(得分:0)

您可以在created_at上添加索引 - 如果有帮助则检查原始SQL 也许最好不要使用ORM并尝试运行DB Builder查询。

答案 1 :(得分:0)

尝试通过echo Database::instance()->last_query获取最后一个查询并尝试使用MySQL EXPLAIN。它会告诉你,使用了哪些索引。

PS:articlesusers中有多少行?