对于唯一性的检索,为什么非聚簇索引比聚簇索引 效率要高呢?

WEL04 2009-04-23 05:14:33
非聚簇索引 适合于单一点的数据的搜索;聚簇索引实用于范围性的搜索; 如果是这样讲的话,插入操作的时候是使用非聚簇索引的速度快,这个没问题;但是对于表里unique的检索 ,为什么说非聚簇索引比聚簇索引要好呢?
...全文
317 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
airfeather 2009-04-24
  • 打赏
  • 举报
回复
回贴挣点分,呵呵
airfeather 2009-04-24
  • 打赏
  • 举报
回复
终于找到组织了
Tomzzu 2009-04-23
  • 打赏
  • 举报
回复
不会吧, 有没有搞错

插入操作不区分聚集索引, 非聚集索引的, 只是如果有聚集索引肯定是不能重复的, 系统要Check的, 所以一个表如果
定义了聚集索引, 插入速度 肯定 慢于 没有定义聚集索引的表

索引只是在检索时有用啊

检索时, 如果使用的条件时利用上了聚集索引, 当然最快了, 其次才是unique, 非聚集索引, 前提是利用上了相关索引

因为聚集索引影响数据物理存储顺序, 检索时按物理顺序当然是最快的了
WEL04 2009-04-23
  • 打赏
  • 举报
回复
非聚簇索引和聚簇索引 都是写在索引页里的 ,只是 非聚簇索引 的叶节点对应的是一个指针 (这个2叉树结构我也不是很明白 高手可以解释一下吗?)

所以您说只需要更新索引表就OK ,2个都有索引表 啊
WEL04 2009-04-23
  • 打赏
  • 举报
回复
不是插入一个unique记录 插件操作我知道是非聚簇索引快


是检索一个表的一个列 的unique性 看看这个列中是否有重复值 聚簇索引 是小数目的不同值的排序 而非聚簇索引是大数目的不同值的排序 但是我感觉检索 unique性有点类同于全表扫描了 效率应该和索引扫描差不多,从聚簇索引的数据性质来看 应该是更适合于这类unique性的检索啊?
贾桂权 2009-04-23
  • 打赏
  • 举报
回复
因为unique内容是随机产生的,不是按大小顺序生产,而聚集索引是按照大小的次序写入到磁盘中。
而插入一个unique内容,使用聚集索引,那么表中的所有记录就得重新排序并重新写入磁盘中,所以慢,而非聚集索引只是将索引存储在一个表中,只需要更新这个索引表就OK了。

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧