上一次我们分析了两种写法不一样,产生的扫描计数差别很大,一个为3,一个为0,我们先看看后面的sql语句执行计划:
执行计划解释:
1,这里有两个合并排序,就是对3个id数据排序,通过合并算法排序(这里为何要用合并排序算法,我们在另一节中讨论)
2,通过排序后的数据,一次使用嵌套循环取出对应的索引值,一共循环三次。(嵌套循环算法将在另一节中讨论)
3,通过循环找到索引键值后,数据库也就找到了对应的行RID,这时通过嵌套循环找到行数据。
我们发现这时,索引和行数据查找是分开的。,也就是说找到索引和找到数据是分开的。这时扫描计数为0
我们还可以使用索引覆盖查找和表扫描,也都有扫描计数
通过上面的例子,总接一下:
扫描计数:数据库连续完整的找到一部分数据的次数。
以上是个人观点,如有错误请批评指正,一起学习进步!!!