1、场景:数据量达到几十万的时候,数据的查询会比较缓慢,这时候如果再联其他表的话,就会更慢
我遇到的情况是:表A数据量73w,表B数据量60w,这两个表联表查询,耗时二十多秒。
原sql语句:SELECT * FROM A LEFT JOIN B ON B.name=A.name GROUP BY A.bid
优化方法:先精简A表后再联表查询
优化后的sql语句:SELECT * FROM (SELECT * FROM A GROUP BY A.bid) a_cl LEFT JOIN B ON B.name=a_cl.name
优化后sql速度减到正常的一秒以内
(后来发现表A没有索引,加了索引后快了很多,所以一定要记得建索引)