导语:首先在看这篇的时候,希望您已经具有相应的MySQL知识并且对于MySQL一些底层一些的部分想做一些了解。本章将会进行关系型数据库的索引部分进行相关讲解,因本人技术不敢说太高深,如果文章中有所纰漏希望您能够在评论区进行指证。
一、MySQL对于索引的支持
首先我们知道MySQL具有多种引擎例如常用的Innodb引擎。接下来我们看一下下面的表格进行几个常用引擎相关了解。
索引 |
Innodb |
MyISAM |
Memory |
B+Tree |
支持 |
支持 |
支持 |
Hash索引 |
不支持 |
不支持 |
支持 |
R-Tree |
不支持 |
支持 |
不支持 |
Full-text |
5.6版本后支持 |
支持 |
不支持 |
注意:平时我们所说的索引如果没有特殊的一些说明基本默认使用的为B+Tree
二、索引的解释
(一)、索引的释义
B+Tree:这个索引是我们最常见的索引,大部分引擎呢也都支持B+Tree。
Hash索引:底层数据结构使用Hash表实现,只有精确匹配索引列的查询才有效,不支持范围查询。
R-Tree(空间索引):空间索引是MyISAM引擎的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少。
Full-text(全文索引):是一种通过建立倒排索引,快速匹配文档的方式。类似于Lucene,Solr,ES。
(二)、索引的优缺点
首先上面我们了解到了索引的一些解释以及引擎对于索引的支持程度,那接下来我们了解一下索引的优缺点。这样更方便我们了解索引日常的使用