独特扫描,范围扫描和跳过扫描是什么意思? 我们可以明确决定使用哪种扫描吗? 所有这些扫描的优点和缺点是什么?
答案 0 :(得分:10)
这些名字非常明显:
“唯一”扫描会扫描唯一索引中的单个值。
“范围”扫描从某个起始值开始,并按顺序读取索引条目(i,例如沿着b-tree),直到遇到超过第二个值的值(搜索a非唯一索引上的单个值是范围扫描,BTW)。
“跳过”扫描仅使用复合索引的前导列来计算其不同的值(因此,一旦找到值,它就会沿着该索引“跳过”直到找到下一个一个)。
对于给定类型的记录匹配,每个都是合适的(并且是最佳的)。 SQL优化器几乎总是选择最适合给定情况的(如果统计信息是最新的)。