正在寻找更好的执行和获取时间的查询,甚至会感谢重写的建议。谢谢
SELECT *
FROM job.FilledApplication FA
JOIN job.InterviewedCandidatelist ICL ON ICL.FilledApplicationDate =FA.Date
JOIN job.SelectedCandidate SC ON ILC.ID = SC.InterviewedCandidateid
Where FA.Date > 12458756236442
ORDER BY FA.Date DESC LIMIT 100000;
最佳答案
只要你有一个只有 > 或 < 的条件,你就可以使用范围扫描(假设你在该字段上有索引)。有时,它有助于限制字段中最大值的范围,以便优化器更好地知道如何执行扫描。例如,如果您知道您有一个连续范围,您也可以通过执行以下操作在查询中使用此信息:
SELECT *
FROM job.FilledApplication FA
JOIN job.InterviewedCandidatelist ICL ON ICL.FilledApplicationDate =FA.Date
JOIN job.SelectedCandidate SC ON ILC.ID = SC.InterviewedCandidateid
Where FA.Date > 12458756236442 AND FA.Date <= (12458756236442+100000)
ORDER BY FA.Date DESC LIMIT 100000;
因此,请考虑一下您对数据的了解,然后应用它。
并且始终查看索引并注意是否有合适的索引(On join 条件、where 条件、可选的 group by 条件或 order by 条件)
关于mysql - 学校Mysql上的SQL语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37848217/