2016 - 2024

感恩一路有你

innodb索引文件和数据文件 MyISAM和InnoDB的索引在实现上的不同?

浏览量:2473 时间:2021-03-11 20:28:07 作者:admin

MyISAM和InnoDB的索引在实现上的不同?

MyISAM和InnoDB compare MyISAM:这是默认类型,基于传统的ISAM类型。ISAM是索引顺序存取方法的缩写,它是存储记录和文件的标准方法。与其他存储引擎相比,MyISAM拥有最多的检查和修复表的工具

~]。如果表没有主键,InnoDB会在表中添加一个隐藏的自动递增的6字节计数器,并使用隐藏的计数器作为主键。InnoDB的隐藏主键有一些问题。您应该始终在表上定义一个显式主键,并通过主键值访问所有InnoDB行。

InnoDB的二级索引也是一个B树。搜索关键字由索引列组成,存储的值是匹配行的主键。通过二级索引进行搜索通常会导致主键的隐式搜索。

什么是B树?

B树是用于优化块设备操作的数据结构。块设备或磁盘具有显著的数据访问延迟,尤其是机械硬盘。随机检索单个字节所花费的时间并不比检索较大的数据少。这就是B-树的基本原理。InnoDB使用16kb的数据页。

让我们尝试简化B-树的描述。B-树是围绕这个键组织的数据结构。该键用于在B树中搜索数据。B-树通常有多个层次。数据只存储在底层,即叶节点。其他级别的页(节点)仅包含下一级别页的键和指针。

如果要访问键值的数据,请从顶级节点根节点开始,将其包含的键值与搜索值进行比较,然后在下一级找到要访问的页面。重复此过程,直到到达最后一级,叶节点。理论上,每个B树级别的读取都需要一个磁盘读取操作。在实际应用中,内存缓存节点数量少,访问频繁,适合缓存。

简单的三级B树结构

innodb索引文件和数据文件 rocksdb实现索引 innodb索引结构

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。