如何分析MySQL SQL查询的成本开销?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3074个文字,预计阅读时间需要13分钟。
成本+什么是成本,即SQL查询的耗时成本,包括IO成本和CPU成本。IO成本:即将数据页从硬盘读取到内存中的耗时成本。通于一页即为1.0的成本。CPU成本:即读取和检查数据的过程成本。
成本什么是成本,即SQL进行查询的花费的时间成本,包含IO成本和CPU成本。
IO成本:即将数据页从硬盘中读取到内存中的读取时间成本。通常1页就是1.0的成本。
CPU成本:即是读取和检测是否满足条件的时间成本。0.2是每行的CPU成本。
单表查询计算成本我们对其进行分析的具体步骤如下:
- 根据搜索条件找出可能使用到的索引。
- 计算全表扫描的需要执行的成本。
- 计算各个索引执行所需要执行的成本。
- 对各个索引所需要执行的成本,找出最低的那个方案。
计算IO成本:
- 我们首先从表的status中找出Data_Length的大小,就是整个聚簇索引的大小,然后计算它一共有多少页。
Data_Length计算页的方法:Data_Length / (页的大小 = 16 * 1024 = 16KB)
- 然后我们就可以直接计算出它的IO成本即 页数 * 1.0 + 1.1。(1.1是一个微调值)
计算CPU成本:
- 首先从表的status中找到Rows的大小,Rows是一个不准确值。
- 找到行的大小,所以CPU成本为**行数 * 0.2 + 0.01。(0.01是微调值)
所以我们可以将其两个成本相加就是全表扫描的总成本。
本文共计3074个文字,预计阅读时间需要13分钟。
成本+什么是成本,即SQL查询的耗时成本,包括IO成本和CPU成本。IO成本:即将数据页从硬盘读取到内存中的耗时成本。通于一页即为1.0的成本。CPU成本:即读取和检查数据的过程成本。
成本什么是成本,即SQL进行查询的花费的时间成本,包含IO成本和CPU成本。
IO成本:即将数据页从硬盘中读取到内存中的读取时间成本。通常1页就是1.0的成本。
CPU成本:即是读取和检测是否满足条件的时间成本。0.2是每行的CPU成本。
单表查询计算成本我们对其进行分析的具体步骤如下:
- 根据搜索条件找出可能使用到的索引。
- 计算全表扫描的需要执行的成本。
- 计算各个索引执行所需要执行的成本。
- 对各个索引所需要执行的成本,找出最低的那个方案。
计算IO成本:
- 我们首先从表的status中找出Data_Length的大小,就是整个聚簇索引的大小,然后计算它一共有多少页。
Data_Length计算页的方法:Data_Length / (页的大小 = 16 * 1024 = 16KB)
- 然后我们就可以直接计算出它的IO成本即 页数 * 1.0 + 1.1。(1.1是一个微调值)
计算CPU成本:
- 首先从表的status中找到Rows的大小,Rows是一个不准确值。
- 找到行的大小,所以CPU成本为**行数 * 0.2 + 0.01。(0.01是微调值)
所以我们可以将其两个成本相加就是全表扫描的总成本。

