作者:Sky.Jian | 可以任意转载, 但转载时务必以超链接形式标明文章原始出处 和 作者信息 及 版权声明
链接:http://www.jianzhaoyang.com/database/myisam-index-structure | del.icio.us | Twitter it

在此之前曾经写过一篇介绍 “Innodb 索引结构了解 - Innodb Index Structure” 的文章,这次再接着分析一下 MyISAM 存储引擎索引的基本存储结构。

从索引基本的存放数据结构来说,MyISAM 的索引不论是 Primary Key 还是普通 Index,存储结构都基本一样,基本结构都是 Balance Tree (简称为 B-Tree),所有的键值详细信息和行“指针”信息都存放于 B-Tree 的 Leaf Nodes 上面。这个基本的数据结构和 MySQL 的其他存储引擎如 Innodb 也基本相同。但是,MyISAM 的索引并不像 Innodb 存储引擎那样 Primary Key 和 Secondary Index 中存放的数据存在较大区别。在 MyISAM 存储引擎中,Primary Key 和其他的普通 Index 的主要区别仅仅在于 Primary Key 的索引键需要满足是非空的唯一值而已,另外一个区别其实也是每一个普通索引之间都存在的区别,就是整个索引树的键值排列顺序不太一样。

由于 MyISAM 存储引擎中数据行的存储分为固定长度和动态长度两种,所以在 MyISAM 存储引擎的数据文件中定位一行数据所需要信息也存在两种方式。一种是直接通过行号(row number)来定位固定长度表数据的行,另外一种是通过其他一些相对的文件位置标识信息来定位动态长度表数据的行,这里我们姑且将两种方式统称为RID(Row ID)吧。

下面这张图片展示了 MyISAM 索引的基本存储方式:

myisam index structure

myisam index structure

Related posts:

  1. Innodb 索引结构了解 - Innodb Index Structure
  2. MySQL MyIsam 存储引擎索引长度限制测试记录
  3. MySQL ORDER BY 的实现分析
  4. MySQL 中 Join 的基本实现原理
  5. MySQL DISTINCT 的基本实现原理

, , ,

如果您觉得文章不错,欢迎您 订阅本站Feed | 收藏至 del.icio.us | Twitter it

已经有3个回复

Trackbacks & Pingbacks

  • MyISAM 索引结构了解 - MyISAM Index Structure

    [...] 原文出自:Sky.Jian 朝阳的天空 原文链接:MyISAM 索引结构了解 - MyISAM Index Structure [...]

  • pligg.com

    » MyISAM 索引结构了解 - MyISAM Index Structure - Sky.Jian 朝阳的天空…

    在此之前曾经写过一篇介绍 “Innodb 索引结构了解 - Innodb Index Structure” 的文章,这次再接着分析一下 MyISAM 存储引擎索引的基本存储结构。

    从索引基本的存放数据结构来说,MyISAM 的索引不论…

  • MyISAM 索引结构了解 - MyISAM Index Structure 网站系统架构网摘 - 系统 架构 服务器 优化 网站

    [...] MyISAM 索引结构了解 - MyISAM Index Structure 分类:mysql | | 给我留言 作者:Sky.Jian | 可以任意转载, 但转载时务必以超链接形式标明文章原始出处 和 作者信息 及 版权声明 链接:http://www.jianzhaoyang.com/database/myisam-index-structure [...]

看完了要说点啥么?