1. 介绍
索引是一个提供数据结构,为表中的行数据提供快速查找功能,索引的实现通常使用变种的 B+ 树。
优点:
- 可以加快检索速度
缺点: - 创建与删除索引,修改数据,需要动态维护索引
- 索引需要占用物理空间
2. 索引分类
根据创建语法的不同进行分类:
-
单列索引,仅包含单个列
CREATE INDEX index_name ON table(column(length))
-
联合索引,包含多个列
CREATE INDEX index_name ON table(column1,column2,...)
- 最左前缀匹配原则:数据是按照 column1 有序方式进行保存,当 column1 相同时,再去比较 column2。所以查询的时候必须带上 col1;若直接使用 col2 进行查询 ,在大部分场景下,该索引会失效。
-
唯一索引,值不能存在相同的,可以有一个值为 NULL
CREATE UNIQUE INDEX indexName ON table(column(length))
-
主键索引,值不能为 NULL 的唯一索引,一个表只有一个主键索引
primary key
-
全文索引 ,用于全文查找
-
Hash 索引,键进行