MySQL原理(四)索引(2)存储结构

前面提到,mysql按索引存储结构划分,主要有四种类型的索引:B-Tree索引、Hash索引、Full-text索引、R-Tree索引。

一、B-Tree索引

BTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,依次遍历node,获取leaf。这是MySQL里默认和最常用的索引类型,前面的普通索引、组合索引用的基本都是BTREE。

二、Hash索引

由于HASH的唯一(几乎100%的唯一)及类似键值对的形式,很适合作为索引。HASH索引可以一次定位,不需要像树形索引那样逐层查找,因此具有极高的效率。但是,这种高效是有条件的,即只在“=”和“in”条件下高效,对于范围查询、排序及组合索引仍然效率不高。Hash 索引仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询

三、Full-text索引

四、R-Tree索引

RTREE在MySQL很少使用,仅支持geometry数据类型,支持该类型的存储引擎只有MyISAM、BDb、InnoDb、NDb、Archive几种,相对于BTREE,RTREE的优势在于范围查找。

你可能感兴趣的:(关系型数据库MySQL,mysql,数据库)