1、索引概念
索引类似于书本目录,是数据库存储引擎维护的用于快速查找到记录的一种数据结构,它是对查询性能优化的最有效手段。
MySQL索引是在存储引擎层而不是服务器层实现的,不同存储引擎的索引工作方式也不一样,也不是所有的存储引擎都支持所有的索引;即使多个存储引擎支持同一种类型的索引,其底层的实现也可能不同。
2、索引的优点
- 索引大大减少了服务器需要扫描的数据量。(索引快速查找特性)
- 索引可以帮助服务器避免排序和临时表。(顺序存储,索引数据可以用作order by或group by)
- 索引可以将随机I/O变成顺序I/O。(覆盖索引)
3、索引种类
- 普通索引:仅加速查询
- 唯一索引:加速查询 + 列值唯一(可以有null)
- 主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个
- 组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并
- 全文索引:对文本的内容进行分词,进行搜索