MySQL索引-数据结构与应用
Posted 伽罗太华
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL索引-数据结构与应用相关的知识,希望对你有一定的参考价值。
概念
页:mysql最小存储单元,大小为16KB
单个索引数据中的数据大小不超过16B
树高:索引树的高度,即层级个数;一页可以存储1024个索引数据,那么3个树高的表,可以存放1024*1024*1024行数据;当然树高是动态的。
索引分唯一索引、单列索引、联合索引
索引类型有Btree、Hash
数据结构
Hash索引,首先计算索引列的Hash值,然后将Hash值与行数据以键值对的形式存放到Hash表中。
Btree索引分MyISAM、InnoDB两种结构
MyISAM:查询到索引后,根据其存储的磁盘位置找到行数据;特点是所有行数据的磁盘位置与每个索引都是一一对应的关系、不具有原子性、不支持事务、不支持外键。数据结构如下图
InnoDB:查询到索引后,直接在节点中获取行数据;特点是叶子节点与所有行数据都是一一对应的关系、支持事务、支持外键。数据结构如下图
总结
Hash索引适合行数据不重复的情况,即唯一索引。
Btree的MyISAM索引适合写少、读多的单表。
Btree的InnoDB索引适合写多、读少、并发高的表
以上是关于MySQL索引-数据结构与应用的主要内容,如果未能解决你的问题,请参考以下文章