MySQL索引的创建、删除
#创建普通索引 创建普通索引时不需要加任何unique fulltext spatial参数
create table index1 (id int,name varchar(20),sex boolean,index(id));
#查看表结构
show create table index1;
#使用explain语句查看索引是否被使用
explain select * from index1 where id = 1;
#创建唯一索引
create table index2 (id int unique,name varchar(20), unique index index2_id(id asc));
#查看表结构
show create TABLE index2;
explain select * from index2 where id = 1;
#创建全文索引
create table index3 (id int, info varchar(20),fulltext index index3_info(info))engine = MyISAM;
#查看表结构
show create TABLE index3;
#创建单列索引
create table index4 (id int,subject varchar(30),index index4_st(subject(10)));
#查看表结构
show create TABLE index4;
#创建多列索引 查询过程中,只有使用了这些字段中的第一个字段时,索引才会被使用,如果不用第一个字段查询,该索引不会启用
create table index5(id int ,name varchar(32),sex varchar(10),index index5_duo(name(10),sex(10)));
#查看表结构
show create TABLE index5;
#创建空间索引 创建空间索引时必须使用spatial参数来设置,表的存储引擎必须是myisam,而且索引字段必须有非空约束
create table index6(id int ,space geometry not null,spatial index index6_sp(space))ENGINE MyISAM;
#查看表结构
show create TABLE index6;
#在已存在的表上创建普通索引
create index index7_id on student(stuID);
#查看表结构
show create TABLE student;
#在已存在的表上创建唯一性索引
create unique INDEX index8_id on borrow(borrowID);
#查看表结构
show create TABLE borrow;
#在已存在的表上创建全文索引
create FULLTEXT index index9_info on index3(info);
#查看表结构
show create TABLE index3;
#在已存在的表上创建单列索引
create index index10_aut on book(author(4));
#查看表结构
show create TABLE index3;
#在已存在的表上创建多列索引
create index index11_duo on borrow(T_time,B_time);
#查看表结构
show create TABLE index3;
#在已存在的表上创建空间索引
create SPATIAL index index12_sp on index6(space);
#查看表结构
show create TABLE index6;
#用alter table 语句来创建普通索引
alter table index1 add index index1_altername(name(10));
#查看表结构
show create TABLE index1;
#用alter table 语句来创建唯一
alter table index2 add unique index2_altername(name(10));
#查看表结构
show create TABLE index2;
#用alter table语句创建全文索引
alter table index3 add FULLTEXT index3_alterquan(info);
#查看表结构
show create TABLE index3;
#用alter table 语句创建单列索引
alter table index4 add index index4_alterdan(subject);
#用alter table语句创建多列索引
alter table borrow add index index4_alterduo(T_time,B_time);
#用alter table语句创建空间索引
alter table index6 add SPATIAL index index5_alterspace(space);
#删除索引
show create TABLE index6;
#drop index 索引名 on 表名;
drop index index5_alterspace on index6;