mysql_index

以下内容基于mysql innodb引擎

索引数据结构

#### B-tree

#### B+tree

索引存储结构

#### 聚集索引

#### 非聚集索引

索引的应用

#### B+索引

#### 自适应hash索引

#### 全文索引

### 为什么是B+ tree

主要考虑两点:磁盘IO次数、区间访问(基于范围的查询)效率

##### 和红黑树对比 在大规模数据存储的时候,红黑树往往出现由于树的深度过大而造成磁盘IO读写过于频繁,进而导致效率低下的情况。在内存中使用改数据结构比较多

#### 和B-tree对比 B-树(B类树)的特定就是每层节点数目非常多,层数很少,目的就是为了就少磁盘IO次数。但是B-树的每个节点都有data域(指针),这无疑增大了节点大小,说白了增加了磁盘IO次数(磁盘IO一次读出的数据量大小是固定的,单个数据变大,每次读出的就少,IO次数增多)

Mysql 

See also