背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万.A与B通过ID逻辑关联,没有实际的外键.B表是后来扩展出来的. 问题:根据某个ID查询时超时,运行时跑不出结果. 原因:使用一个or条件,条件里面有一个是A.ID=B.ID 简单优化:将or条件拆开,使用union all:将之前使用表变量的部分换成了临时表:对排序的字段加上了索引 结果:在50ms内能够查询出结果,这个与之前的超时简直不能相比. 感想:感谢DBA mm的帮助,让我有了这样的体验,不实际的处理(哪怕很简单…