Mysql内核查询成本计算
2023-01-05 23:57:15 3 举报
AI智能生成
Mysql内核查询成本计算
作者其他创作
大纲/内容
EXPLAIN输出成本
连接查询的成本<br>
成本
MySQL执行一个查询可以有不同的执行方案,它会选择其中成本最低,或者说代价最低的那种方案去真正的执行查询
组成<br>
I/O成本<br>
我们的表经常使用的MyISAM、InnoDB存储引擎都是将数据和索引都存储到磁盘上的,当<br>我们想查询表中的记录时,需要先把数据或者索引加载到内存中然后再操作。这个从磁<br>盘到内存这个加载的过程损耗的时间称之为I/O成本
CPU成本<br>
读取以及检测记录是否满足对应的搜索条件、对结果集进行排序等这些操作损耗的时间<br>称之为CPU成本
单表查询的成本
过程
1、根据搜索条件,找出所有可能使用的索引<br>
2、计算全表扫描的代价
聚簇索引占用的页面数
该表中的记录数
Rows
本选项表示表中的记录条数。对于使用MyISAM存储引擎的表来说,该值是准确的,对于<br>使用InnoDB存储引擎的表来说,该值是一个估计值
Data_length
本选项表示表占用的存储空间字节数。使用MyISAM存储引擎的表来说,该值就是数据文<br>件的大小,对于使用InnoDB存储引擎的表来说,该值就相当于聚簇索引占用的存储空间<br>大小,也就是说可以这样计算该值的大小:<br>Data_length = 聚簇索引的页面数量 x 每个页面的大小
3、计算使用不同索引执行查询的代价
使用idx_expire_time执行查询的成本分析
1、范围区间数量
2、需要回表的记录数
4、对比各种执行方案的代价,找出成本最低的 那一个
收藏
0 条评论
下一页