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