白话 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 了

posted @ 2022-05-10 12:01  tang88seng  阅读(127)  评论(0编辑  收藏  举报