当前位置:网站首页>聚集索引和非聚集索引
聚集索引和非聚集索引
2022-08-09 14:59:00 【Small-K】
聚集索引和非聚集索引
一言以蔽之,聚集索引就是索引顺序和物理顺序一致的索引结构,非聚集索引是索引顺序与物理顺序不一致的索引结构。
他们之间的关系有点像数组和哈希表,数组的下标就是聚集索引,哈希表的键就是非聚集索引。
Mysql中,聚集索引和非聚集索引的底层结构都是B+树
聚集索引
mysql中,主键就是加了唯一性约束的聚集索引,如果我们在创建表的时候不显式指定主键,mysql会自动为我们选择一列作为主键。
聚集索引一张表只能有一个,这是因为聚集索引的索引顺序与物理排列顺序一致,而物理排列顺序只能有一个。当然我们可以删除现有的聚集索引而重新设置一个,但这样会造成数据的物理重排。
在聚集索引的底层B+树中,叶子节点存储的就是每一个记录的全部数据。
非聚集索引
非聚集索引的底层B+树中,叶子节点存储的是非聚集索引的索引列和聚集索引的索引列,然后会有一个字段指向实际的物理数据存储地址。
这就涉及到一个二次查询问题,当我们检索数据带上了非索引字段时,就不得不再去实际数据的物理存储地址取一次数据。
解决二次查询问题的方法就是为常需要同时检索的数据建立多重索引,且符合最左前缀匹配法则。
ps
具体的说明可参照下面的链接,已经非常细致了,上述只是自己简化的记忆。
参考资料:
[1] 聚集索引与非聚集索引的总结
边栏推荐
猜你喜欢

【 graduate work weekly 】 (10 weeks)
![[Deep Learning] SVM solves the linear inseparable situation (8)](/img/3c/199f3ff3fb0546bcd7f70bd71030a0.png)
[Deep Learning] SVM solves the linear inseparable situation (8)

蓝桥杯嵌入式第十三届模拟题做题笔记

使用NATS及其nats.c客户端简单示例用法(nats.c的API接口)

Face recognition sample code analysis (1) - program parameter analysis

hugging face tutorial - Chinese translation - share a model

堆(heap)系列_0x08:NT堆调试支持_立刻发现调试支持(DPH)

【知识分享】异步串行收发器Uart(串口)-通信协议详解

tensor转cv::Mat(即CHW转HWC)原理含C#代码实现

go语言基础学习(一起学习go语言)
随机推荐
杭州富阳科目三考试
Heap series _0x03: heap block + malloc/new bottom layer + LFH (WinDbg analysis)
Face recognition sample code analysis (2) - face recognition analysis
堆(heap)系列_0x03:堆块 + malloc/new底层 + LFH(WinDbg分析)
主成分分析——MATLAB在数学建模中的应用(第2版)
【力扣】55. 跳跃游戏
堆(heap)系列_0x05:一张图剖析堆块分配和FreeLists的联系
Word 2016 撰写论文(1): 公式居中、编号右对齐
Stetman读peper小记:Defense-Resistant Backdoor Attacks Against DeepNeural Networks in Outsourced Cloud
hugging face tutorial - Chinese translation - model summary
【力扣】11. 盛最多水的容器
【力扣】17. 电话号码的字母组合
hugging face tutorial - Chinese translation - sharing custom model
Postgraduate Work Weekly
堆(heap)系列_0x07:NT堆调试支持_滞后发现调试支持
堆(heap)系列_0x02:堆的前世今生(WinDbg+Visual Studio汇编)
【力扣】617. 合并二叉树
【Likou】1995. Statistical special quadruple
SVM支持向量机——MATLAB在数学建模中的应用
云模型和Logistic回归——MATLAB在数学建模中的应用(第2版)