索引分类

  1. 普通索引:

    不加任何参数,直接通过 keyindex 来创建的索引。是 mysql 中的基本索引类型,可创建在任意数据类型中。其值是否唯一、非空,则由字段本身的约束决定。

  2. 唯一索引:

    在定义索引时,加上 unique 即可,该索引所在字段的值必须唯一。但允许有空值。在一张数据表里可以有多个唯一索引

  3. 全文索引

    在定义索引时,加上 fulltext 即可,该索引只能创建在 char、varchar 、text 类型的字段上。

  4. 单列索引

    是在表中单个字段上创建索引,可以为普通索引、唯一索引等,只要保证该索引只对应表中一个字段即可。

  5. 多列索引

    是在表中多个字段上创建索引,但是只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。

  6. 空间索引
    在定义索引时,加上 spatial 即可,该索引只能创建在空间数据类型的字段上。

    mysql 中空间类型索引有 4 中:GEOMETRY、POINT、LINESTRING 和 POLYGON 。但是当使用空间索引时,该字段的约束必须为 not null且数据库的存储引擎为 MyISAM 中使用。

注:主键:primary key 也可作为索引

但本质上看其是一种约束,而索引是一种数据结构,用来提升查询效率