编辑
2023-11-24
mysql
00
请注意,本文编写于 533 天前,最后修改于 533 天前,其中某些信息可能已经过时。

目录

存储结构
InnoDB存储结构
MyISAM存储结构
索引结构
B树索引
哈希索引
总结

MySQL底层数据的组织方式主要涉及存储结构和索引结构两个方面。下面将详细介绍这两个方面的内容。

存储结构

MySQL使用存储引擎来管理数据的存储和检索。常见的存储引擎包括InnoDB、MyISAM等。其中,InnoDB是MySQL默认的存储引擎,也是最常用的存储引擎之一。

InnoDB存储结构

InnoDB的存储结构由表空间(tablespace)、段(segment)、区(extent)和页(page)组成。

  1. 表空间(tablespace):表空间是物理存储的最高级别,对应于磁盘上的数据文件。每个InnoDB表都有一个对应的表空间,用于存储表的数据和索引。

  2. 段(segment):段是表空间的子单位,用于管理数据和索引。每个表在表空间中都有一个对应的段。

  3. 区(extent):区是段的子单位,用于管理连续的页。每个区的大小通常为1MB。

  4. 页(page):页是存储数据和索引的最小单位。每个页的大小通常为16KB,默认情况下,InnoDB使用的页大小为16KB。

MyISAM存储结构

MyISAM的存储结构相对简单,数据和索引分别存储在不同的文件中。

  1. 数据文件(.MYD):数据文件存储了表的实际数据。

  2. 索引文件(.MYI):索引文件存储了表的索引信息。

索引结构

索引是用于加快数据检索速度的数据结构。MySQL支持多种索引类型,包括B树索引、哈希索引等。

B树索引

B树索引是MySQL中最常用的索引类型。它采用B树(或B+树)数据结构来组织索引数据。

B树索引的特点包括:

  • B树索引是一种平衡树结构,可以快速定位到目标数据。
  • B树索引适用于范围查询,可以高效地支持大量的数据插入、删除和更新操作。
  • B树索引的叶子节点存储了实际的数据,非叶子节点存储了索引信息。

哈希索引

哈希索引是一种基于哈希表的索引结构,适用于等值查询。

哈希索引的特点包括:

  • 哈希索引使用哈希函数将索引值映射到哈希表中的槽位,可以快速定位到目标数据。
  • 哈希索引不支持范围查询,只能进行等值查询。
  • 哈希索引适用于内存中的数据,对于大量数据存储在磁盘上的情况,哈希索引的效果可能不如B树索引。

总结

MySQL底层数据的组织方式涉及存储结构和索引结构两个方面。存储结构包括表空间、段、区和页,不同的存储引擎有不同的存储结构。索引结构包括B树索引和哈希索引,B树索引是最常用的索引类型,而哈希索引适用于等值查询。


Learn more:

  1. MySQL底层的存储结构_mysql的存储结构是怎么样的-CSDN博客
  2. 深入理解 Mysql 索引底层原理 - 知乎
  3. 深入理解mysql索引的底层数据结构 - 白露~ - 博客园

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!