当前位置:网站首页>聚集索引和非聚集索引
聚集索引和非聚集索引
2022-08-09 14:59:00 【Small-K】
聚集索引和非聚集索引
一言以蔽之,聚集索引就是索引顺序和物理顺序一致的索引结构,非聚集索引是索引顺序与物理顺序不一致的索引结构。
他们之间的关系有点像数组和哈希表,数组的下标就是聚集索引,哈希表的键就是非聚集索引。
Mysql中,聚集索引和非聚集索引的底层结构都是B+树
聚集索引
mysql中,主键就是加了唯一性约束的聚集索引,如果我们在创建表的时候不显式指定主键,mysql会自动为我们选择一列作为主键。
聚集索引一张表只能有一个,这是因为聚集索引的索引顺序与物理排列顺序一致,而物理排列顺序只能有一个。当然我们可以删除现有的聚集索引而重新设置一个,但这样会造成数据的物理重排。
在聚集索引的底层B+树中,叶子节点存储的就是每一个记录的全部数据。
非聚集索引
非聚集索引的底层B+树中,叶子节点存储的是非聚集索引的索引列和聚集索引的索引列,然后会有一个字段指向实际的物理数据存储地址。
这就涉及到一个二次查询问题,当我们检索数据带上了非索引字段时,就不得不再去实际数据的物理存储地址取一次数据。
解决二次查询问题的方法就是为常需要同时检索的数据建立多重索引,且符合最左前缀匹配法则。
ps
具体的说明可参照下面的链接,已经非常细致了,上述只是自己简化的记忆。
参考资料:
[1] 聚集索引与非聚集索引的总结
边栏推荐
- Vim实用技巧_8.替换(substitute)和global命令
- 规划问题的MATLAB求解——MATLAB在数学建模中的应用(第2版)
- Vim practical skills_3. Visual mode and command mode
- 【原理+源码详细解读】从Transformer到ViT
- 【Postgraduate Work Weekly】(The third week)
- Face recognition sample code analysis (2) - face recognition analysis
- 【QT】窗口几何布局学习
- 数据拟合方法 MATLAB在数学建模中的应用(第二版)
- 蓝桥杯嵌入式备赛
- 【工具使用】Keil5软件使用-进阶工程配置篇
猜你喜欢
随机推荐
【剑指 Offer】 37. 序列化二叉树
软件安全内存区域详解
规划问题的MATLAB求解——MATLAB在数学建模中的应用(第2版)
wireshark抓包新手使用教程
Introduction to common commands in SQLMap
【工具使用】Keil5软件使用-基础使用篇
如何不使用第三个变量来交换两个数的值
CRM定制开发需要多少钱 CRM系统定制开发价格
SVM支持向量机——MATLAB在数学建模中的应用
tensor转cv::Mat(即CHW转HWC)原理含C#代码实现
配置 vscode 让它变得更好用
使用NATS及其nats.c客户端简单示例用法(nats.c的API接口)
PE format series _0x05: output table and relocation table (.reloc)
Postgraduate Work Weekly (Week 4)
嵌入式三级笔记
Stetman读peper小记:Defense-Resistant Backdoor Attacks Against DeepNeural Networks in Outsourced Cloud
Detailed Explanation of Software Secure Memory Area
matlab讲解与使用【持续更新中ing】
ASCII码表
交叉编译 OpenSSL









