MySQL的btree索引和hash索引的区别

mysql 索引中的USING BTREE 的意义 - 浮.尘 - 博客园
https://www.cnblogs.com/rxbook/p/10648796.html

MySQL的btree索引和hash索引的区别 - 14的路 - 博客园
https://www.cnblogs.com/vicenteforever/articles/1789613.html

索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。

根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。

大多数存储引擎有更高的限制。MySQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关;

MYISAM和InnoDB存储引擎只支持BTREE索引;MEMORY和HEAP存储引擎可以支持HASH和BTREE索引

     B-tree索引是数据库中存取和查找文件(称为记录或键值)的一种方法.B-tree算法减少定位记录时所经历的中间过程,从而加快存取速度.

一个B-tree的典型例子就是硬盘中的结点.与内存相比,硬盘花成倍的时间来存取一个数据元素,这是硬盘的机械部件读写数据的速度远远赶不上纯 电子媒体的内存.与一个结点两个分支的二元树相比,B-tree利用多个分支(称为子树)的结点,减少获取记录时所经历的结点数,从而达到节省存取时间的 目的.
【重点】,不同的索引是为了支撑不同的引擎,不同的引擎又是为了优化存取时间的成本。

posted @ 2020-07-30 14:30  任国强  阅读(238)  评论(0编辑  收藏  举报