MyISAM主键索引树和二级索引树

专栏持续更新中:MySQL详解

MyISAM:数据和索引没有放在一块,叫做 非聚集索引,不可能回表

InnoDB:数据和索引存放在一块,叫聚集索引 ,会涉及回表

此时假设一个场景:uid是主键,有主键索引树,name有索引,创建二级索引树

当前场景下的主键索引树如下,B+树非叶子节点上只有索引值,叶子节点上有索引值和数据地址

MyISAM索引树原理图如下:

当前场景下的二级索引树如下:

InnoDB二级索引树叶子节点上是主键值uid,而MyISAM存的则是数据的地址

当前场景下,主键索引树和二级索引树两者之间的联系:

在MyISAM中,主索引和辅助索引(Secondary key)在结构上没有任何区别,只是主索引要求key是唯一的,而辅助索引的key可以重复,MyISAM二级索引树结构图如下:

当前场景下,若使用MyISAM存储引擎查找数据,以name作为索引,到二级索引树上查找结果(构造索引树的过程也涉及磁盘I/O),如果指定的Key存在,则取出其data域的值,然后以data域的值为地址,读取相应数据记录。

MyISAM存储引擎,B+树叶子节点存储关键字和数据地址,也就是说索引关键字和数据没有在一起存放,体现在磁盘上,表的数据存放在*.MYD文件中,表的索引存放在*.MYI文件中。

相关推荐
野生技术架构师21 分钟前
Spring Boot 实现数据脱敏:自定义注解 + Jackson 序列化器
java·spring boot·后端
爱吃火鸡面呀24 分钟前
MySQL 查询与函数详解:从基础条件筛选到高级字符处理
数据库·mysql
奥莱维31 分钟前
KNX酒店方案_KNX专用线与高端酒店技术逻辑
java·服务器·前端·数据库
牛大兵40 分钟前
机顶盒获取局域网已经使用IP,开放的端口号,扫描摄像头,NAS,共享主机等开机自启局域网全量扫描工具
数据库·网络协议·tcp/ip
知行产研1 小时前
中国矿山无人驾驶出海的三重门
数据库·mysql·php
l1258651 小时前
# RAG低延迟架构设计:从5秒到500ms的优化全链路
数据库·人工智能·python·langchain
RisunJan1 小时前
Linux命令-vgdisplay(显示卷组详细属性)
linux·运维·数据库
爱和冰阔落2 小时前
【MySQL 慢查询排查实战】列表接口逐渐变慢时,怎样从请求链路定位原因
android·数据库·mysql
JacksonMx2 小时前
企业级 JPA 与数据库架构落地指南
数据库·数据库架构