目录
- 索引简介
- 索引分类
- 索引设计原则
- 创建索引
- 删除索引
索引简介
索引是对数据表中一列或者多列的值进行排序的结构,使用索引可以提高对数据表中特定的数据的查询速度。
索引分类
- 普通索引,唯一索引
- 单列索引,组合索引
- 全文索引
- 空间索引
索引设计原则
创建索引
在创建表的时候创建索引
- 创建普通索引
create table book(
bookid int not null,
bookname varchar(255)not null,
authors varchar(255) not null,
info varchar(255)null,
comment varchar(255)null,
year_publication year not null,
index(year_publication) #直接创建普通的索引
);
使用命令查看索引
使用explain查看索引是否正在使用
- 创建唯一索引
create table t1(
id int not null,
name char(30) not null,
unique index UniqIdx(id) #在id列上创建唯一索引
);
也可以使用命令查看索引是否已经被创建以及是否被使用。
- 创建单列索引
create table t2(
id int not null,
name char(50)null,
index SingleIdx(name(20)) #创建索引长度为20的单列索引
);
- 创建组合索引
create table t3 (
id int not null,
name char(30) not null,
age int not null,
info varchar(255),
index MultiIdx(id,name)
);
- 创建全文索引
只有MyISAM存储引擎支持FULLTEXT索引,并且只为CHAR,VARCHAR和TEXT列创建索引
create table t4(
id int not null,
name char(30) not null,
age int not null,
info varchar(255),
fulltext index FullTxtIdx(info)
)engine = MyISAM;
- 创建空间索引
创建空间索引也只能在储存引擎为MyISAM中的引擎才能创建,不然会报错,而且创建索引的列必须非空。
在已经存在的表上创建索引
可以使用命令查看已经创建的索引
使用alter table在bookname字段上添加索引
扫描二维码关注公众号,回复:
2232606 查看本文章
alter table book add index
BKNameIdx(bookname(30));
创建唯一索引
alter table book add unique
index UniqidIdx (bookId);
创建全文索引和创建组合索引以及空间索引和前面类似。
使用create index 创建索引
先创建一个book2表
create table book2(
bookid int not null,
bookname varchar(255)not null,
authors varchar(255) not null,
info varchar(255)null,
comment varchar(255)null,
year_publication year not null
);
然后创建索引
create index BkNameIdx on book2(bookname);
#在book2表中的bookname字段上建立名为BkNameIdx的普通索引
创建唯一索引
create unique index UniqieIdx on
book2(bookId);#在book2上建立唯一索引
同理,组合索引,全文索引,空间索引类似。
删除索引
使用alter table删除索引
alter table book drop index UniqidIdx;
#删除book表上的UniqidIdx索引
使用drop index语句删除索引
drop index BKNameIdx on book;
#删除book表上的BKNameIdx索引