求教下,聚集索引和无索引下,为什么扫描计数不一样?
select * from tablea where id in (2,3,4);
select * from tablea where id between 2 and 4;
1. 当 id 是 tablea 聚集索引列的时候。 为什么用in 要查找聚集索引3次,而用between and 只要查找聚集索引1次
(3 行受影响)
表 'tablea'。扫描计数 3,逻辑读取 6 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
(3 行受影响)
表 'tablea'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
2. 当 tablea无索引时。 为什么用in 和 between and 只要扫描表就完成了?
(3 行受影响)
表 'tablea'。扫描计数 1,逻辑读取 1 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
(3 行受影响)
表 'tablea'。扫描计数 1,逻辑读取 1 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。