我正在使用symfony和sonata admin bundle,在Admin部分我有这个查询:
SELECT DISTINCT
a0_.id AS id_0,
a0_.home_position AS home_position_1
FROM article_en a0_
LEFT JOIN fos_user_user f1_ ON a0_.author_id = f1_.id
ORDER BY a0_.home_position DESC
LIMIT 25
OFFSET 0
查询大约1秒钟,article_en
表太多了大约25.000行。我想使用一些索引来提高此查询的性能,但我的所有尝试都没有成功。
有任何提高绩效的建议吗?
修改
我解释了数据库中表的结构。这是 article_en 表,结构和索引:
索引是:
这是 fos_user_user表:
索引是:
计划
此查询由sonata admin bundle执行,以显示来自特定用户的最新25篇英文文章。我每次都在sonata管理包中执行此查询,此查询以分页模式执行,我的目标是尝试提高此查询的性能,以改善应用程序这一部分的用户体验。
答案 0 :(得分:0)
在3列a0_.author_id
,f1_.id
和a0_.home_position
a0_.home_position
上的索引,因为它用于对结果进行排序。