索引分类
-
普通索引:
不加任何参数,直接通过
key或index来创建的索引。是 mysql 中的基本索引类型,可创建在任意数据类型中。其值是否唯一、非空,则由字段本身的约束决定。 -
唯一索引:
在定义索引时,加上
unique即可,该索引所在字段的值必须唯一。但允许有空值。在一张数据表里可以有多个唯一索引。 -
全文索引:
在定义索引时,加上
fulltext即可,该索引只能创建在 char、varchar 、text 类型的字段上。 -
单列索引:
是在表中单个字段上创建索引,可以为普通索引、唯一索引等,只要保证该索引只对应表中一个字段即可。
-
多列索引:
是在表中多个字段上创建索引,但是只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。
-
空间索引:
在定义索引时,加上spatial即可,该索引只能创建在空间数据类型的字段上。mysql 中空间类型索引有 4 中:
GEOMETRY、POINT、LINESTRING 和 POLYGON。但是当使用空间索引时,该字段的约束必须为not null且数据库的存储引擎为MyISAM中使用。
注:主键:primary key 也可作为索引
但本质上看其是一种约束,而索引是一种数据结构,用来提升查询效率