MYSQL预测成本时的索引筛选会回表多少次?

我在学习MYSQL的优化,浏览博客时有人贴出算成本的方式,我尝试了一下

发现等值筛选时只需要计算回表的成本

img

上图中筛选出 1 行数据,根据公式 1 * 0.25 + 1 * 0.1 = 0.35 是对的

但是超过了18行之后,发现只回表了18次

img

上图中筛选出 20 行数据,根据公式 18 * 0.25 + 20 * 0.1 = 6.5 是对的

img

上图中筛选出 50 行数据,根据公式 18 * 0.25 + 50 * 0.1 = 9.5 是对的

img

上图中筛选出 100 行数据,根据公式 18 * 0.25 + 100 * 0.1 = 14.5 是对的

img

上图中筛选出 200 行数据,根据公式 18 * 0.25 + 200 * 0.1 = 24.5 是对的

img

上图中筛选出 1000 行数据,根据公式 18 * 0.25 + 1000 * 0.1 = 104.5 是对的

Mysql约定,回表的时候,回表一条数据相当于访问一次页面,也就是io打分为1
我上网查询显示 一条数据就回表一次,但上面的测试远远没有,1000行数据也只回表了18次?

烦请各位大手子看下测试是否是对的,为什么会这样呢。。

这个根据你的 mysql 的索引来决定的。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

可能是因为索引的方式有关系的吧。