微信小程序本地存储与登录页面处理实例详细讲解
739
2022-09-04
MyISAM主键索引树和二级索引树
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文件中。
参考:
448-MySQL(MyISAM主索引树,二级索引树)MySQL的MyISAM与InnoDB的索引方式
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~