(ainusers原创)聚集索引与非聚集索引

本文参考其他优秀文章做下总结,随后附上原链

简介

索引概念:索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构

索引结构:B+树(支持查询较全),Hash结构(不支持范围查询)

聚集索引以及非聚集索引用的是B+树索引

聚集索引(类似于id [主键唯一])

定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。

举栗子:新华字典的拼音目录(如下图所示解释定义)

地址idusernamescore
0x011小明90
0x022小红80
0x033小华92
........
0xff256小英70

注:第一列的地址表示该行数据在磁盘中的物理地址,后面三列是我们SQL里面用的表里的列,其中id是主键,建立了聚集索引

非聚集索引(类似于外键 [可有多个])

定义:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。

举栗子:新华字典的偏旁目录(存在二次查询问题)

如下图实例

解决非聚集索引的二次查询问题

使用场景

小结

  1. 使用聚集索引的查询效率要比非聚集索引的效率要高,但是如果需要频繁去改变聚集索引的值,写入性能并不高,因为需要移动对应数据的物理位置。
  2. 非聚集索引在查询的时候可以的话就避免二次查询,这样性能会大幅提升。
  3. 不是所有的表都适合建立索引,只有数据量大表才适合建立索引,且建立在选择性高的列上面性能会更好。
  4. 聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。  

  5. 聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引,这些索引指向专门的数据页的数据。

  6. 以上聚集索引类比新华字典拼音查找非聚类索引类比新华字典偏旁查找

原文链接:https://www.cnblogs.com/s-b-b/p/8334593.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值