在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法
mysql 中添加索引的三种方法 1.1 新建表中添加索引① 普通索引
12
3
4
5
6
7
create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
index index_no(no)
)
② 唯一索引
12
3
4
5
6
7
create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
unique index index_no(no)
)
③ 全文索引
12
3
4
5
6
create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
fulltext index index_no(no)
④ 多列索引
12
3
4
5
6
7
create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
key index_no_name(no,name)
)
1.2 在已建表中添加索引
① 普通索引
12
create index index_name
on t_dept(name);
② 唯一索引
12
create unique index index_name
on t_dept(name);
③ 全文索引
12
create fulltext index index_name
on t_dept(name);
④ 多列索引
12
create index index_name_no
on t_dept(name,no)
1.3 以修改表的方式添加索引
① 普通索引
12
alter table t_dept
add index index_name(name);
② 唯一索引
12
alter table t_dept
add unique index index_name(name);
③ 全文索引
12
alter table t_dept
add fulltext index_name(name);
④ 多列索引
12
alter table t_dept
add index index_name_no(name,no);
1.4 小结
以上就是mysql中索引的新建的三种方法。以上的表名以及列名,请根据实际表列名替换。
mysql索引的类型和优缺点
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
注:[1]索引不是万能的!索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程序上弥补这一缺陷,许 多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进 行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非 常明显。[2]另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内 容,为它建立索引就没有太大的实际效果。
从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。
1. InnoDB数据表的索引