Innodb存储引擎的索引组成

简介: Innodb存储引擎的索引组成

Innodb存储引擎索引

Innodb存储引擎有下面三种索引

  1. B+树索引
  2. 全文索引
  3. 哈希索引

哈希索引在Innobd存储引擎中是自适应的,存储引擎会根据表的使用情况自动生成哈希索引,也就是当数据被查询以此之后,会缓存起来,形成哈希键值,下次查询的时候会走哈希索引

B+数索引构造类似于二叉树,根据key快速查找到数据,另外B+树并不是通过给定键值查询到具体行,B+树只是能通过给定的键值找到具体的页,然后数据库把页读取到内存中,再在内存中查找得到想要的数据。

B+树索引

B+树和二叉树和平衡二叉树一样,都是经典的数据结构,他们其实都使用了二分法查找,不同点是,二叉树会出现不平衡的现象。平衡二叉树通过左右旋转维持平衡,但是由于每个节点存储的数据少,索引层级深,而B+树使用了旋转维持平衡,又通过每个叶子节点存储多个数据且叶子节点间通过链表相连,从而减少了层级,加快了查询速度。对比B树,B树上所有的节点上都保存数据,相对的来说他的层级更深,所以B+树相当于对B树的优化,

B+树一般是2-4层,数据库中B+树索引分为聚集索引和非聚集索引

全文索引

全文索引是将存储于数据库中的整本书或整篇文章任意位置内容信息查找出来的技术,之前的innodb不支持该技术,从1.2x版本开始,innodb开始支持该技术。

  • 倒排索引

    全文索引通常使用倒排索引来实现,他在辅助表中存储了单词与单词自身在一个或者多个中所在的位置之间的映射,通常使用关联数组来实现。

哈希索引

Innodb存储引擎中的缓存池页中存在哈希表,并且缓存池页都有一个chain指针,他指向哈希函数值的页,哈希索引是数据库自身创建并使用的,比如 select * from table where name ='xxx' ,当下一次使用name =‘xxx’查询可能就会走hash索引了,但是如果是范围查询就一定不会走hash索引了。

相关文章
|
8月前
|
存储 关系型数据库 MySQL
索引大战:探秘InnoDB数据库中B树和Hash索引的优劣
索引大战:探秘InnoDB数据库中B树和Hash索引的优劣
78 0
|
30天前
|
存储 缓存 关系型数据库
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
MySQL的存储引擎是其核心组件之一,负责数据的存储、索引和检索。不同的存储引擎具有不同的功能和特性,可以根据业务需求 选择合适的引擎。本文详细介绍了MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案。
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
|
1月前
|
存储 关系型数据库 MySQL
MySQL存储引擎详述:InnoDB为何胜出?
MySQL 是最流行的开源关系型数据库之一,其存储引擎设计是其高效灵活的关键。InnoDB 作为默认存储引擎,支持事务、行级锁和外键约束,适用于高并发读写和数据完整性要求高的场景;而 MyISAM 不支持事务,适合读密集且对事务要求不高的应用。根据不同需求选择合适的存储引擎至关重要,官方推荐大多数场景使用 InnoDB。
75 7
|
1月前
|
存储 关系型数据库 MySQL
Mysql索引:深入理解InnoDb聚集索引与MyisAm非聚集索引
通过本文的介绍,希望您能深入理解InnoDB聚集索引与MyISAM非聚集索引的概念、结构和应用场景,从而在实际工作中灵活运用这些知识,优化数据库性能。
150 7
|
2月前
|
存储 算法 关系型数据库
InnoDB与MyISAM实现索引方式的区别
InnoDB和MyISAM均采用B+树索引,但在实现上有所不同。InnoDB的主键索引在叶子节点存储完整数据记录,辅助索引则存储主键值;而MyISAM的主键索引与数据文件分离,仅存数据地址,且主辅索引无区别,支持非唯一主索引。
57 1
|
2月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL的InnoDB存储引擎
InnoDB是MySQL的默认存储引擎,广泛应用于互联网公司。它支持事务、行级锁、外键和高效处理大量数据。InnoDB的主要特性包括解决不可重复读和幻读问题、高并发度、B+树索引等。其存储结构分为逻辑和物理两部分,内存结构类似Oracle的SGA和PGA,线程结构包括主线程、I/O线程和其他辅助线程。
【赵渝强老师】MySQL的InnoDB存储引擎
|
2月前
|
存储 关系型数据库 MySQL
数据库引擎之InnoDB存储引擎
【10月更文挑战第29天】InnoDB存储引擎以其强大的事务处理能力、高效的索引结构、灵活的锁机制和良好的性能优化特性,成为了MySQL中最受欢迎的存储引擎之一。在实际应用中,根据具体的业务需求和性能要求,合理地使用和优化InnoDB存储引擎,可以有效地提高数据库系统的性能和可靠性。
57 5
|
4月前
|
存储 SQL 缓存
InnoDB 存储引擎以及三种日志
InnoDB 存储引擎以及三种日志
35 0
|
6月前
|
存储 关系型数据库 MySQL
MySQL InnoDB存储引擎的优点有哪些?
上述提到的特性和优势使得InnoDB引擎非常适合那些要求高可靠性、高性能和事务支持的场景。在使用MySQL进行数据管理时,InnoDB通常是优先考虑的存储引擎选项。
212 0
|
7月前
|
存储 算法 关系型数据库
【MySQL技术内幕】5.7- InnoDB存储引擎中的哈希算法
【MySQL技术内幕】5.7- InnoDB存储引擎中的哈希算法
67 1