mysql学习——索引的类别和结构

B+树索引

 

B+树索引适合全键值、键值范围、键前缀查找

跟oracle的b+数是一个结构。

聚簇索引的叶节点存储数据页,其结构是一致的。

mysql学习——索引的类别和结构

哈希索引

哈希索引基于哈希表实现,只有精确匹配索引所有列的查询才有效。对于每一行,存储引擎都会对索引列计算hash code,哈希索引存放hash code和行指针

哈希索引不等于哈希连接

Innodb hash索引支持表

mysql学习——索引的类别和结构

 

Innodb应该是不支持手动创建hash索引,仅支持 Adaptive Hash Index 

Adaptive Hash Index 

InnoDB存储引擎会监控对表上索引的查找,如果观察到建立哈希索引可以带来速度的提升,则建立哈希索引,所以称之为自适应(adaptive) 的哈希索引

innodb_adaptive_hash_index

Property

Value

Command-Line Format

--innodb-adaptive-hash-index[={OFF|ON}]

System Variable

innodb_adaptive_hash_index

Scope

Global

Dynamic

Yes

Type

Boolean

Default Value

ON

或者--skip-innodb-adaptive-hash-index启动server时选择关闭自适应哈希

 

空间数据索引R-tree

MyISAM支持空间索引。GIS支持较好的是postgre的postGIS

全文索引

查询文本中的关键词,类似oracle中的全文索引

 

其他索引类别

第三方存储引擎支持的索引