美文网首页
聚集索引和非聚集索引区别?

聚集索引和非聚集索引区别?

作者: 时间煮菜 | 来源:发表于2020-04-10 08:17 被阅读0次

聚合索引(clustered index):

简单说:就是将数据存储与索引放到了一块,找到索引也就找到了数据

  • 聚集索引表记录的排列顺序和索引的排列顺序一致,所以查询效率快,只要找到第一个索引值记录,其余就连续性的记录在物理也一样连续存放。
  • 聚集索引对应的缺点就是修改慢,因为为了保证表中记录的物理和索引顺序一致,在记录插入的时候,会对数据页重新排序。
  • 聚集索引类似于新华字典中用拼音去查找汉字,拼音检索表于书记顺序都是按照a~z排列的,就像相同的逻辑顺序于物理顺序一样,当你需要查找a,ai两个读音的字,或是想一次寻找多个傻(sha)的同音字时,也许向后翻几页,或紧接着下一行就得到结果了。

非聚合索引(nonclustered index):

  • 非聚簇索引在查询时通过索引得到主键的值,然后再拿主键的值去查询聚簇索引得到最终的数据行
  • 非聚集索引指定了表中记录的逻辑顺序,但是记录的物理和索引不一定一致,两种索引都采用B+树结构,非聚集索引的叶子层并不和实际数据页相重叠,而采用叶子层包含一个指向表中的记录在数据页中的指针方式
  • 非聚集索引层次多,不会造成数据重排。
  • 非聚集索引类似在新华字典上通过偏旁部首来查询汉字,检索表也许是按照横、竖、撇来排列的,但是由于正文中是a~z的拼音顺序,所以就类似于逻辑地址于物理地址的不对应。同时适用的情况就在于分组,大数目的不同值,频繁更新的列中,这些情况即不适合聚集索引。

根本区别:聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致。

  • 何时使用聚簇索引与非聚簇索引
动作 使用聚簇索引 使用非聚簇索引
列经常被分组排序
返回某范围内的数据 不应
一个或极少不同值 不应 不应
小数目的不同值 不应
大数目的不同值 不应
频繁更新的列 不应
外键列
主键列
频繁修改索引列 不应

相关文章

  • 聚集和非聚集索引

    转载: 聚集和非聚集索引 是什么?区别是? 聚集索引就是以主键创建的索引 非聚集索引就是以非主键创建的索引 区别:...

  • 聚集索引和非聚集索引区别?

    聚合索引(clustered index): 简单说:就是将数据存储与索引放到了一块,找到索引也就找到了数据 聚集...

  • mysql索引专题考点总结

    聚集索引和非聚集索引的结构 [ 概念 ] 聚集索引, 非聚集索引, 回表 , 覆盖索引 索引用B+树存储, 假设索...

  • 聚集索引和非聚集索引

    https://blog.csdn.net/itguangit/article/details/82145322 ...

  • 索引

    索引类型:聚集索引和非聚集索引 字典的字母索引是聚集索引,偏旁索引是非聚集索引。总的来说聚集索引是存在一个已有顺序...

  • 聚集索引非聚集索引

    sql的索引有B+树和Hash结构两种,聚集索引和非聚集索引都是采用B+树索引。 聚集索引 定义:数据行的物理顺序...

  • sqlserver索引

    SQL中的索引分为两种,一种为聚集索引和非聚集索引,下面介绍两者的异同。 一、聚集索引与非聚集索引: 1、聚集索引...

  • [转]聚集索引和非聚集索引的区别

    聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致。 聚集索引表记录的排列顺序与索引的排列...

  • mysql 聚集索引和非聚集索引

    聚集索引 索引是存储了表数据的物理地址 聚集索引既存储了表数据key又存储了行值,物理地址的逻辑顺序和表存储的顺序...

  • mysql 聚集索引和非聚集索引

    通常我们说的索引大致分为两类,聚集索引和非聚集索引,非聚集索引也就是常用的普通索引,包括(唯一索引,全文索引等) ...

网友评论

      本文标题:聚集索引和非聚集索引区别?

      本文链接:https://www.haomeiwen.com/subject/iiygphtx.html