MySQL索引类型:B-Tree与Hash索引对比.pdfVIP

  • 1
  • 0
  • 约1.48千字
  • 约 2页
  • 2026-11-10 发布于北京
  • 举报

B-Tree索引

最常见的索引类型,基于B-Tree数据结构。B-Tree的基本思想是,所有值(被索

引的列)都是排过序的,每个叶节点到跟节点距离相等。所以B-Tree适合用来查

找某一范围内的数据,而且可以直接支持数据排序(ORDERBY)。但是当索引多

列时,列的顺序特别重要,需要格外注意。InnoDB和MyISAM都支持B-Tree索

引。InnoDB用的是一个变种B+Tree,而MyISAM为了节省空间对索引进行了压

缩,从而牺牲了性能。

Hash索引

[!TIP|label:HASH索引说明]基于hash表。所以这种索引只支持精确查找,不支持范围查找,不支持

排序。这意味着范围查找或ORDERBY都要依赖server层的额外工作。目前只有Memory引擎支持

显式的hash索引(但是它的hash是nonunique的,太多时也会影响查找性能)。Memory引

擎默认的索引类型即是Hash索引,虽然它也支持B-Tree索引

•索引只包含值和行指针,而不字段值,所以不能使用索引中的值

来避免行(即不能使用索引来做覆盖索引扫描),不过,内存中

的行的速度很快(因为memory引擎的数据都保存在内存里),所以大部分

情况下这一

文档评论(0)

1亿VIP精品文档

相关文档