- SQL的执行顺序
sql的执行顺序是从后向前执行
–frist 执行from关键字后面的语句,搞清楚数据的来源,它是从哪张表取来的。
–second 执行where关键字后面的语句,过滤数据,从后向前执行。
–third 执行group by后面的语句,对数据进行分组分类,where完了就开始分组,若存在having关键字,则会先进行分组,再执行过滤。
–fourth 执行select后面的语句,换句话说就是对处理好的数据而言,具体要取哪一部分的数据。
–fifth 执行order by后面的语句,对最终的结果进行排序。
-
大表关联查询的优化
大表关联优化步骤:
1. 将大表先最大可能的过滤下数据,使过滤后的数据量达到最小(数据量尽可能达到最小,过滤时尽量使用索引过滤,这样关联时速度就会快很多)
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重复度二高,就排第二,依次类推
- 执行计划
具体的优化,要看执行计划,根据业务拆分sql,还是根据索引来拆分数据