以下查询运行非常慢。。。
SELECT
CONCAT(users.first_name, ' ', users.last_name) AS user_name,
leads.first_name AS first_name,
comments.*,
FROM comments
INNER JOIN users ON
users.id = comments.user_id
INNER JOIN leads ON
leads.id = comments.lead_id AND
leads.company_id = 1
ORDER BY
`sort` DESC,
reply ASC,
id ASC
LIMIT 80,20
leads表有约8000条记录users表有约300条记录comments表有约500000条记录
我有一个关于leads.id、comments.lead\u id、leads.company\u id、users.id和comments.user\u id、comments.sort、comments.reply、comments.id的索引
有人能解释一下如何优化这个查询吗?
查询说明截图
1条答案
按热度按时间brqmpdu11#
移动
leads
到世界第一from
列表:这允许索引
leads(company)
在连接到其他表之前,立即筛选出尽可能多的行。性能提升应该是
1/(fraction of leads with company_id = 1)