SQL优化

本文详细阐述了SQL语句的执行顺序,包括FROM-WHERE-GROUP BY-HAVING-SELECT-ORDER BY的步骤,并探讨了大表关联查询的优化方法,如先过滤大表数据、利用索引和合适的数据量进行关联。同时,提到了联合索引的创建原则,即按字段重复度排序。优化SQL执行的关键在于理解执行计划并依据业务需求调整SQL结构或利用索引。
摘要由CSDN通过智能技术生成
  1. SQL的执行顺序
    sql的执行顺序是从后向前执行

frist 执行from关键字后面的语句,搞清楚数据的来源,它是从哪张表取来的。

–second 执行where关键字后面的语句,过滤数据,从后向前执行。

–third 执行group by后面的语句,对数据进行分组分类,where完了就开始分组,若存在having关键字,则会先进行分组,再执行过滤。

–fourth 执行select后面的语句,换句话说就是对处理好的数据而言,具体要取哪一部分的数据。

–fifth 执行order by后面的语句,对最终的结果进行排序。

  1. 大表关联查询的优化

    大表关联优化步骤:
    1. 将大表先最大可能的过滤下数据,使过滤后的数据量达到最小(数据量尽可能达到最小,过滤时尽量使用索引过滤,这样关联时速度就会快很多)
    2. 关联时,用少数据量去关联大数据量的,关联字段尽量用索引关联

  2. 联合索引的顺序

eg: create index ACCOUNTING.INX_CANCEL_ACC_FRZ_DETL_BAPD on
ACCOUNTING.CANCEL_ACCOUNT_FROZEN_DETAILS (ACCOUNT_ID, PRODUCT_ID,
DBI_ID, BILL_MONTH)

这四个字段ACCOUNT_ID, PRODUCT_ID, DBI_ID, BILL_MONTH的顺序是: 根据数据的重复度排先后顺序,若account_id重复度最高,则排在第一位,product_id重复度二高,就排第二,依次类推

  1. 执行计划
    具体的优化,要看执行计划,根据业务拆分sql,还是根据索引来拆分数据
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值