《MySQL是怎么样运行的》读书笔记四--基于成本的优化

基于成本的优化

MySQL中一条查询语句的执行成本是由下边这两个方面组成的:

查询成本=I/O成本+CPU成本

I/O成本:从磁盘到内存这个加载的过程损耗的时间称之为I/O成本。

CPU成本:读取以及检测记录是否满足对应的搜索条件、对结果集进行排序等这些操作损耗的时间称之为CPU成本。

成本常数:一个页面花费的成本默认是1.0,读取以及检测一条记录是否符合搜索条件的成本默认是0.21.00.2这些数字称之为成本常数。

基于成本的优化步骤:

  1. 根据搜索条件,找出所有可能使用的索引(找出聚簇索引+二级索引+联合索引)

  2. 计算全表扫描的代价(全表扫描)

  3. 计算使用不同索引执行查询的代价(二级索引+回表)

  4. 对比各种执行方案的代价,找出成本最低的那一个

2.计算全表扫描的代价:

  • 聚簇索引占用的页面数

  • 该表中的记录数

3.计算使用不同索引执行查询的代价(二级索引+回表)

MySQL查询优化器先分析使用唯一二级索引的成本,再分析使用普通索引的成本

查询的成本分析:

①范围区间数量

②需要回表的记录数

连接查询的成本

两表连接的成本分析

多表连接的成本分析

调节成本常数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值