背景:某个结果表因性能问题拆成两个表,为避免两个表来回,而使用多表查询。
过程:
1.想 select * from A,B where status = 'Failed' ,没问题,查询很快,
2.更进一步 select * from A,B where status = 'Failed' order by id desc ,查询,慢的天荒地老 。
3.sql语句前加explain,作用查看sql语句逻辑 原因: 临时表 、排序
4.百度后,原因很明确临时表、排序造成的,解决办法:换种方法查询-》左连接
5.select * from A,B left join A.id = B.id where status = 'Failed' order by id desc 没问题,很快
6.explain结果:很明显不需要临时表与排序