索引

来源:互联网 发布:德军 知乎 编辑:程序博客网 时间:2024/06/07 23:14

           InnoDB和MyISAM存储引擎支持BTREE索引,MEMORY存储引擎支持HASH索引和BTREE索引,默认为HASH。

       索引可以提高查询速度,但会影响插入记录的速度(会按照索引进行排序)。可以:先删除索引 再插入数据 再创建索引。

 

一、创建表时创建索引

  [unique | fulltext | spatial ]  index|key  [别名] (字段1 [(长度)] [asc|desc])

1.创建普通索引

    index(字段名)

2.创建唯一性索引

  unique index [别名] (字段 ASC)                              ---唯一性索引,以升序排列

3.创建全文索引

  全文索引只能创建在char、varchar、或text类型的字段上。而且,现在只有MyISAM引擎支持全文索引。

  fulltext index [别名](字段)

4.单列索引

  index [别名](字段名(索引长度))   

5.多列索引

  index [别名](字段1,字段2,...,字段n)

  只有使用了 字段1 时,多列索引才会被使用。

6.空间索引

  spatial index [别名](字段)

  存储引擎必须是MyISAM类型,索引字段必须有非空约束(not null),且是空间数据类型。

二、在已经存在的表上创建索引

  (一)

  create [unique|fulltext|spacial] index 索引名 on 表名 (字段 [(长度)] [asc|desc])

1.创建普通索引

  create index 索引名 on 表名(字段)

2.创建唯一性索引

  create unique index 索引名 on 表名(字段)

3.创建全文索引

  全文索引只能创建在char、varchar、或text类型的字段上。而且,现在只有MyISAM引擎支持全文索引。

 create fulltext index 索引名 on 表名(字段)

4.单列索引

  create index 索引名 on 表名(字段(索引长度))   

5.多列索引

  create index 索引名 on 表名(字段1,字段2,...,字段n)

  只有使用了 字段1 时,多列索引才会被使用。

6.空间索引

  create spatial index 索引名 on 表名(字段)

  存储引擎必须是MyISAM类型,索引字段必须有非空约束(not null),且是空间数据类型。

  (二)

   用alter table 语句来创建索引

   alter table 表名 add [unique | fulltext | spatial ]  index|key  [别名] (字段1 [(长度)] [asc|desc])

三、删除索引

   drop index 索引名 on 表名

0 0