基于成本的优化
1.什么是成本
我们之前⽼说MySQL执⾏⼀个查询可以有不同的执⾏⽅案,它会选择其中成本最低,或者说代价最低的那种⽅案去真正的执⾏查询。不过我们之前对成本的描 述是⾮常模糊的,其实在MySQL中⼀条查询语句的执⾏成本是由下边这两个⽅⾯组成的:
- I/O成本:执行sql需要扫描的页数的数量 * 1.0
- CPU成本:执行sql需要读取以及检测的记录数量 * 0.2
2.成本的计算
计算一条查询sql的成本计算分为以下几步
-
根据搜索条件,找出所有可能使⽤的索引
-
计算索引执行的代价
-
计算全表扫描的代价
-
计算全表扫描的代价
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l8WjSO15-1686638558049)(C:\Users\10059\AppData\Roaming\Typora\typora-user-images\image-20220830170102032.png)]