使用 ORDER BY 运行此程序需要 10 多秒,并最终在高流量时使我的网站崩溃。

select *
from tbluserinfluences, tblcontent, tblusers
where tblcontent.userid = tblusers.id
and tbluserinfluences.userid = tblusers.id
and tbluserinfluences.lcase_influence = 'pink floyd'
order by tblcontent.score desc
limit 0, 160

在没有 ORDER BY 的情况下运行相同的查询 只需几毫秒。
select *
from tbluserinfluences, tblcontent, tblusers
where tblcontent.userid = tblusers.id
and tbluserinfluences.userid = tblusers.id
and tbluserinfluences.lcase_influence = 'pink floyd'
order by tblcontent.score desc
limit 0, 160

这是 解释

有任何想法吗?我愿意将其拆分为多个查询、创建临时表或任何其他有帮助的东西。这个查询让我(和我的用户)很烦。

谢谢!

最佳答案

您可能需要在 score 列上建立索引。

10-06 05:50