1. 索引的介绍
一种数据结构,为了快速找到数据记录,索引存储在内存中
主要作用是:加快查询速度,提高数据库性能
2. 数据库中索引的分类
普通索引:最基本的索引没有任何限制
唯一索引:与普通索引类似,索引列的值必须唯一,允许null,如果是组合索引则列值的组合必须唯一
主键索引:特殊的唯一索引,不允许有null,作为一张表唯一的标识是表中的某一条记录
联合索引:多个字段上建立的索引,能加快符合查询
全文索引:用于全文搜索的索引
3. 索引的底层实现原理
每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型,本文介绍mysql中的四种索引:
B+Tree索引
最常见的索引,大部分数据库都支持
Hash索引
只有Memory引擎支持,使用场景简单
R-Tree索引(空间索引)
使用很少,是MyISAM引擎的一个特殊索引类型,主要用于地理空间数据
S-Full-text(全文索引)
MyISAM引擎的一个特殊索引类型,主要用于全文索引,InnoDB从mysql5.6之后也开始支持全文索引