如何添加mysql\'的这个sql的索引

select a.id,

a.plan_num,

a.material_code,

a.material_desc,

a.unit,

a.con_num,

a.send_place,

a.ccz,

a.contract_num,

a.dcplan_sh,

a.plan_sendrq,

a.Shipper,

a.Shipper_tel,

a.dalei,

d.isDirect,

d.region,

e.supplier_name

from

delivery_plan a

left join (select order_num,order_row_num,supplier_name from material_china_order where document_date>='2022-01-01' and document_date<='2022-12-31') e

on a.pzbh=e.order_num

and a.pzhxm=e.order_row_num

left join ( select purchase_order_num,purchase_order_line_item_code,isDirect,region from material_china_plan where submission_date>='2022-01-01' and submission_date<='2022-12-31') d

on a.pzbh=d.purchase_order_num

and a.pzhxm=d.purchase_order_line_item_code

left join delivery_power b on a.dalei=b.qx

and a.zt='2'

and a.ccz='xxx' 

and b.czz='xxx' 

and b.code='80598231' 

order by plan_sendrq desc

如题,d和e中数据较多,现有一个这样的sql ,如何增加索引可以提升数据查询速度

SQL 用户DRQXF9153762 发布于 2022-12-14 11:26
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户DRQXF9153762Lv3初级互助
发布于2022-12-14 16:02

将联查表的where放到总查询处 同时将联查表的查询内容放置索引 即可提升速度

最佳回答
0
牛~~~Lv6中级互助
发布于2022-12-14 11:35

你这个 d、e 查询的周期长,数据量级多的话,建议按照日期做分区处理,其他的没啥建议的

  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 为啥不能增加索引提升速度呢0.0
    2022-12-14 11:40 
  • 牛~~~ 牛~~~ 回复 用户DRQXF9153762(提问者) 索引不是加的越多越好的。虽然索引本身就是为了提高表的查询效率,但是复杂的SQL、多表的关联本身就会影响性能。
    2022-12-14 12:43 
最佳回答
0
ss2021Lv5见习互助
发布于2022-12-14 16:33

e的order_num,order_row_num 列上创建索引,d的purchase_order_num,purchase_order_line_item_code列上创建索引 a表的pzbh 和pzhxm 列上创建索引 另外  submission_date>='2022-01-01' and submission_date<='2022-12-31' 这个条件加在最下面的where 里试试

  • 2关注人数
  • 273浏览人数
  • 最后回答于:2022-12-14 16:33
    请选择关闭问题的原因
    确定 取消
    返回顶部