一、索引介绍
索引是存储引擎用来快速查找记录的一种数据结构。
二、索引的分类
一、按照实现方式分:
hash索引和B+树索引
二、按照功能分
一、单列索引:一个索引只包含单个列,一张表中可以有多个单列索引
1.普通索引:mysql中的基本索引,没有什么限制。允许在在定义索引的列中插入重复值和空值,纯粹是为了查询数据快一点。(普通索引也可以是组合索引,即多个列)
2.唯一索引:唯一索引列的值必须唯一,但允许有空值,如果是组合索引,则列值的组合必须唯一
3.主键索引:每张表一般都会有自己的主键,当我们创建表时,MySQL会自动在主键上创建一个索引。主键索引具有唯一性,且不能为null,所以是特殊的唯一索引。
二、组合索引:也叫复合索引,指的是在建立索引的时候使用多个字段,既可以是普通索引也可以是唯一索引。复合索引的使用复合最左原则。
三、全文索引:
1.关键字:fulltext
2.全文索引主要使用来查找文本中的关键字。而不是直接与索引中的值进行比较。更像是一个搜索引擎,基于相似度的查询,而不是简单的where语句的参数匹配。
3.like+%在文本比较少时是合适的。但是对于大数据量的检索,就不太实用了。全文索引在大数据量面前,比like+%快N倍。速度不是一个数量级的。但是全文索引存在精度问题。
四、空间索引