SQL优化-查询语句特征(2)

查询语句特征

  1. 七个查询命令中,除了having 命令外。剩余六个查询命令执行完毕后都会生成全新的临时表
  2. 七个查询命令中 ,除了 from之外,剩下六个查询命令操作的临时表 都是上一个查询命令所生成的临时表
  3. 在当前查询命令执行完毕后,mysql会自动将上一个查询命令生成的临时表进行销毁处理,在一个查询语句执行完毕后,用户只能看到最后一个查询命令所生成的临时表
  4. 在进行多字段分组查询时从第二个分组字段开始,操作的临时表是上一个分组字段所生成的临时表

七个查询命令中,哪些命令查询效率过慢

最慢的是 group by (先排序后分组)

group by 执行时首先将临时表中的数据进行排序
然后在进行分组

第二慢 order by

order by 执行时需要对select 生成的临时表中的数据行进行一次排序 然后将排序好的数据行来组成一个全新的临时表

第三慢 where

需要对表中所有的数据行进行遍历。如果当前临时表中的数据行过多,会导致where 执行的效率非常慢

第四慢 limit (mysql)

如果指定的起始行数过大,则导致查询速度变慢

对于多表查询来说,没有指定表文件加载的顺序,也会导致查询速度过慢

执行命令过慢原因
1.执行时需要对所有数据进行排序
2.执行时需要对表中所有的数据行进行遍历
3.I/O流去加载表文件的次数 (大表驱动小表)
可以对1,2进行优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值