0

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

这表明此静态方法引起了问题。我已经运行了原始 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。我还能做些什么来优化查询或加快执行时间?

4

2 回答 2

0

尝试获取最后一个查询echo Database::instance()->last_query并尝试 MySQL EXPLAIN。它将向您显示使用了哪些索引。

PS:你有多少行articlesusers

于 2013-11-27T20:05:02.950 回答
0

您可以添加索引created_at- 检查原始 SQL 是否有帮助。
最好不要使用 ORM 并尝试运行 DB Builder 查询。

于 2013-01-28T07:41:55.350 回答