经常碰到类似这样的语句
假设有5个表,每个表都是500万左右的记录表名是a,b,c,d,e语句如下
select a.idfrom aleft join b on a.id=b.idleft join c on c.custno=d.custnoleft join d on d.name=e.name and e.startdate>='20171026'
假设表上语句where字段上的索引都有,统计信息也是最新的,请问这样的语句如何优化?
这个查询没有过虑条件,查询结果集就是很大。唯一的是e表基于时间,如果不是left join还可以用的上。
1.关联字段id、custno没问题,用离散性大的字段,并添加索引2.上面a、b表关联没问题 到在关联c表就产生笛卡尔集了,关联中最忌讳次情况发生3.a表示主表,其他都是left join 并不会减少数据量,若确定d表是筛选条件可以作为主表
关于TWT使用指南社区专家合作厂商入驻社区企业招聘投诉建议版权与免责声明联系我们 © 2024talkwithtrend — talk with trend,talk with technologist京ICP备09031017号-30