MySql索引存储形式

試著忘記壹切 提交于 2020-08-08 19:49:59

聚簇索引(聚集索引)、非聚簇索引(非聚集索引),是因为存储引擎不同引起的,存储引擎中InnoDb是聚簇索引、MyISam是非聚簇索引,聚簇索引是数据与索引保存在一个起,非聚簇索引数据一个文件、索引一个文件,数据与索引不在一个文件中。

Mysql的索引以B+Tree的数据结构存储在磁盘,默认存储引擎为InnoDb。

InnoDb

InnoDb非叶子节点中,指针左闭右开是一个区间,区间中保存排序的索引,如1,2,3(数据)P1(指针)5,6,7,P2,8,9,10,P3,根据数据所在区间,根据指针指向另一个磁盘块继续查找,查找到后返回数据,叶子界面保存整行数据。

如果有两个指针,name非主键,设置为索引,查询该索引表,改索引保存的数据为Id值,然后使用查询的Id值去Id索引表去查询,这种现象叫回表

 

MyISam

叶子节点存储的是数据的文件地址,根据地址去数据文件中进行查找

 

学习数据结构网站

https://www.geeksforgeeks.org
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
https://visualgo.net/zh

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!