优缺点

  • 优点:提高查询数据的速度
  • 缺点:增加了创建和维护索引的时间

分类

  • 普通索引
    • 可以创建在任何数据类型中
  • 唯一性索引
    • 使用unique参数可以设置,在创建唯一性索引时,限制该索引的值必须是唯一的
  • 全文索引
    • 使用fulltext参数可以设置,全文索引只能创建在char,varchar,text类型的字段上。主要作用是提高较大字符串类型的查询速度;只有MyISAM引擎支持该索引,MySQL引擎默认不支持。
  • 单列索引
    • 在表中可以给单个字段创建索引,单列索引可以是普通索引,唯一性索引或全文索引。
  • 多列索引
    • 多列索引是在表的多个字段上创建一个索引。
  • 空间索引
    • 使用spatial参数可以设置空间索引。空间索引只能创建在空间数据类型上,这样可以提高系统获取空间数据的效率;只有MyISAM引擎支持,MySQL引擎默认不支持。

创建索引

  1. 创建表的时候创建索引

    create table 表名
    (属性名 数据类型[完整性约束条件]),
    (属性名 数据类型[完整性约束条件]),
    ...
    [unique|fulltext|spatial] index|kye [别名] (属性名 [(长度)] [asc|desc] )

  2. 在已存在的表上创建索引

    create [unique|fulltext|spatial] index 索引名 (属性名 [(长度)]) [asc|desc] );

  3. 用alter table语句来创建索引

    alter table 表名 add [unique|fulltext|spqtial] index 索引名 (属性民 [(长度)] [asc|desc]);

  4. 删除索引

    drop index 索引名 on 表名;