sql server数据库运算符

获取原始数据运算符的比喻

场景:假设我们班级的N个同学分别坐在一个大型礼堂的不同座位上,每个同学的学号就相当于他们的座位号(无序)。我们要找到学号为n-1的同学。
工具:名单册(学号,姓名)
查找速度排序(从慢到快)
  • 全表扫描(Table scan):就像你什么也不知道,只能一个个的去找(遍历整个数据库,O(N))

  • 索引查找(Index Seek): 假设有一个按照学号顺序(逻辑顺序)排列的同学名单册(即非聚集索引),你可以直接翻到名单册中间,然后使用二分查找就可以快速定位,而不需要去礼堂一个一个看座位号,(省去了I/O时间,因为只用查看索引,时间复杂度log2N)

  • 键查找(Key Lookup):在使用索引查找之后,你已经知道了同学的姓名,你只需要回礼堂(全表)去寻找即可,是在已经缩小查找范围下的查找,所以更快,这是额外的操作,会增加一些开销

  • 聚集索引查找(Clustered Index Seek):如果同学们坐的位置是根据名单册(名单册的顺序和座位的顺序一样(物理顺序),即聚集索引)坐的,且他的座位号在相邻的信息中,你就可以直接得到座位号,你就可以直接找到他

  • 非聚集索引查找(Index Seek):与索引查找相同,只是特指索引是非聚集索引,还是需要通过键查找

  • 非聚集索引扫描(Index Scan):与全表扫描类似,只是他扫描的是索引树(名单册)

  • 聚集索引扫描(Clustered Index Scan):你有一个名单册(物理顺序),但是因为你要找的人不止一个特别多,所以在这种情况下你会直接扫描,而不是查找

总结,从快到慢:
  1. 全表扫描

  1. 非聚集索引扫描

  2. 聚集索引扫描

  1. 索引扫描++键查找

  1. 非聚集索引查找

  1. 聚集索引查找

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值