白话 Microsoft SQL Server 的 index seek, scan, lookup
拿 select * from users where name like 'acme%' 举例, 在name上有非聚集索引。
- Seek
翻译成定位更合适,上面的SQL直接在索引定位到该 Entry.
- Scan
如果 Users表很小,或者返回大量的数据;索引一个一个定位慢,还不如 从头到尾 Scan 这个索引
- Lookup
索引找到Entry后(索引里面含着 name 和 指向行的指针),因为 select * 是取到整行的数据 - 根据指针查询行数据叫 Loopup. (索引理解成为 Bookmark)
- 当然如果是访问聚集索引,就不需要 lookup 了