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文件中。

相关推荐
行百里er5 分钟前
Spring Insight 里如何把 Span 画成瀑布时间线
spring boot·后端·监控
卷无止境6 分钟前
从终端里长出来的 IDE,oh-my-pi 到底是个什么东西
人工智能·后端
我滴老baby9 分钟前
工业物联网数据库选型:把计算能力放回第一维度
数据库·人工智能·架构·pdf
Doris__HE15 分钟前
【元脑服务器NF8260G7-NF8260M7技术规格分享】
运维·服务器·网络·数据库·性能优化
万物智能19 分钟前
PWM散热风扇设置—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
前端·后端·算法
用户81818706274628 分钟前
第29章 死信队列与延迟消息实战
java·后端
专业程序开发源29 分钟前
springboot旅游推荐系统82074-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·php·课程设计·旅游
步行cgn30 分钟前
Spring 注入值中含有特殊符号的处理详解
java·后端·spring
未秃头的程序猿32 分钟前
全链路追踪落地一年:从翻日志到秒级定位,我们都做了什么
java·后端·面试
用户75310571245133 分钟前
五年前我吐槽 PG 的 32 位 XID 是狗皮膏药,今天它被治好了
数据库