Mysql InnoDB B+Tree索引
来源:互联网 发布:盗图投诉淘宝复审 编辑:程序博客网 时间:2024/05/21 08:00
摘要
1,InnoDB索引类型
2,B+Tree索引
Mysql InnoDB 索引
1,InnoDB索引类型
InnoDB存储引擎支持 B+树索引,Hash索引,全文索引。其中B+Tree是InnoDB最常用的索引。
而InnoDB引擎支持Hash索引是自适应的,InnoDB存储引擎会根据表的使用情况自动为表创建Hash索引。不能人为干涉创建Hash索引。
2,B+Tree索引
B+Tree是一种数据结构,InnoDB的B+Tree索引就是根据此结构实现的。如果不了解B+Tree数据结构,可先了解 二分查找法和二叉树。不做赘述。
在InnoDB中 B+Tree索引具有高扇出性,因此B+Tree的高度一般是2~4层。(也就是查找有索引的数据,最多查2~4次)
B+Tree索引分为 聚集索引和辅助索引,它们都是通过B+Tree数据结构实现的,主要区别是,子叶节点存放的是否是一整行的信息。
首先要知道InnoDB存储引擎是索引组织表(表中的数据按主键顺序存放)
2.1聚集索引
按每张表的主键(主键可以有多个字段)构造一颗B+Tree,同时子叶节点存放整张表的行记录数据。(每张表只能有一个聚集索引)
1.当你定义一个主键时,InnnodDB存储引擎则把它当做聚集索引
2.如果你没有定义一个主键,则InnoDB定位到第一个唯一索引,且该索引的所有列值均飞空的,则将其当做聚集索引。
3如果表没有主键或合适的唯一索引INNODB会产生一个隐藏的行ID值6字节的行ID聚集索引,
2.如果你没有定义一个主键,则InnoDB定位到第一个唯一索引,且该索引的所有列值均飞空的,则将其当做聚集索引。
3如果表没有主键或合适的唯一索引INNODB会产生一个隐藏的行ID值6字节的行ID聚集索引,
2.2辅助索引(非聚集索引)
其叶子节点并不包含行记录的全部数据,叶子结点除了包含键值以外,
每个叶子结点中的索引行还包含了一个书签,该书签用来告诉存储引擎可以在哪找到相应的数据行,
由于innodb引擎表是索引组织表,因此innodb存储引擎的辅助索引的书签就是相应行数据的聚集索引键。(每张表可以有多个辅助索引)
阅读全文
0 0
- Mysql InnoDB B+Tree索引
- B-Tree B+Tree mysql索引(MyISAM,InnoDB)
- Mysql B-Tree 索引
- mysql b-tree索引
- mysql b-tree索引
- MySQL中MyISAM和InnoDB对B-Tree索引不同的实现方式
- MySQL innodb 索引 B+树实现
- mysql hash 索引 vs B-TREE 索引
- MYSQL 索引----B-Tree和全文索引
- mysql 索引类型详解-B-Tree索引
- MySQL索引使用的数据结构:B-Tree和B+Tree
- MySQL索引使用的数据结构:B-Tree和B+Tree
- MySQL索引使用的数据结构:B-Tree和B+Tree
- B-Tree / B+Tree 结构以及MySQL索引
- mysql索引->HASH索引和B-Tree索引
- mysql索引:b tree索引和hash索引的区别
- mysql索引hash索引和b-tree索引的区别
- mysql索引原理之B+/-Tree
- Spring MVC + redis 消息的订阅发布
- 顺序表的实现
- Typescript代码实例解析
- 算法规律 rotate String
- 曾国藩的三十六字诀
- Mysql InnoDB B+Tree索引
- 【职坐标】SpringMVC和struts2的区别对比
- 冒泡排序法为什么最佳的时间复杂度是O(n)
- python自然语言处理学习笔记4——条件
- Android Api demo系列(26) (Graphics>Sweep)
- 解决自定义Toast(吐司)设置宽高无效的问题
- springcloud记录篇1-eurekaserver
- 数据库---常见约束的SQL语句的研究与使用
- 读书笔记——并行处理器架构