索引由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度。

创建索引是指在某个表的一列或者多列上建立一个索引,用来提高对表的访问速度,

创建索引由三种方法:在创建表的时候创建,在已存在的表上创建和用alter table语句创建。

创建索引的基本语法格式:

MySQL索引介绍

ASC参数表示升序排列,DESC参数表示降序排列。

一,在创建表的时候创建索引

1,  创建一个普通索引:

创建一个index1的表,在其id字段上建立索引:

create table index1(id int,namevarchar(20),sex boolean,index(id));

查看索引是否被引用àexplain select * from index1 where id=1;

MySQL索引介绍

2,  创建唯一性索引:

创建一个index2表,在id字段上建立唯一性索引,升序排列:

create table index2(id int, namevarchar(20),unique index index2_id(id asc));

创建结果如图:

MySQL索引介绍

3,  创建全文索引;

目前只有myisam支持全文索引。

创建一个index3表,在info字段建立全文索引:

create table index3(id int,infovarchar(20),fulltext index3_info(info))engine=myisam;

结果如图所示:

MySQL索引介绍

4,  创建单列索引

创建index4表,在subject字段上建立单列索引:

create table index4(id int,subjectvarchar(20),index index4_sb(subject(10)));

结果如图所示:

MySQL索引介绍

5,  创建多列索引

创建index5表,在name和sex上建立多列索引:

create table index5(id int, namevarchar(10),sex boolean,index index_nasex(name,sex));

结果如图所示:

MySQL索引介绍

6,  创建空间索引:

创建index6表,在表中space字段建立空间索引,建立空间索引的字段必须有非空约束,存储引擎必须是myisam:

create table index6(id int,space geometrynot null,spatial index index6_space(space))engine=myisam;

结果如图所示:

MySQL索引介绍

二,在已存在的表上创建索引

基本语法为:

MySQL索引介绍

首先创建index7,不设置索引:

MySQL索引介绍

为index7在id字段加一个普通索引:

create index index7_id on index7(id);

变化后结果显示:

MySQL索引介绍

三,用alter table 语句创建索引

基本语法:

MySQL索引介绍

创建一个index8,不设置索引:

如下:

MySQL索引介绍

为name加一个索引:

alter table index8 add indexindex8_name(name(20));

变化如下:

MySQL索引介绍

四,删除索引

drop index索引名 on 表名;

索引就先看到这里了,接下来了解一下MySQL的视图和触发器。


相关文章: