数据库问题

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 ,如何增加索引可以提升数据查询速度

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

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

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

重复问题?

1、表里面的id字段或者那些强维度字段是可以考虑添加索引的(强调:索引不是加的越多越好)

2、mysql 中SQL尽量遵循小表关联大表的原则

3、数据量级是否能聚合。拿这一段来说,明细表你没有聚合函数,关联又只有其中的两个,是否产生了笛卡尔积呢?

image.png

  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 应该没有产生笛卡尔积,我只是不明白,为什么不能加索引 select order_num,order_row_num,supplier_name from material_china_order where document_date>=\'2022-01-01\' and document_date<=\'2022-12-31\' 比如这个查询,我将查询项order_num,order_row_num,supplier_name 加为该表的一个索引,where条件document_date加为一个索引 但是用explain检测 索引都没有起实际效果
    2022-12-14 13:51 
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 在吗在吗
    2022-12-14 15:20 
  • 牛~~~ 牛~~~ 回复 用户DRQXF9153762(提问者) 有一种原因,可能是因为DBMS发现全表扫描比走索引效率更高。
    2022-12-14 15:31 
  • 牛~~~ 牛~~~ 回复 用户DRQXF9153762(提问者) 你看下这个帖子 https://blog.csdn.net/wo541075754/article/details/123104860
    2022-12-14 15:31 
  • 用户DRQXF9153762 用户DRQXF9153762(提问者) 回复 牛~~~ 已经解决了。
    2022-12-14 16:00 
  • 1关注人数
  • 403浏览人数
  • 最后回答于:2022-12-14 16:01
    请选择关闭问题的原因
    确定 取消
    返回顶部