索引定义:索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度;类似于图书的目录,方便快速定位,寻找指定的内容。
索引的优缺点
优点:提高查询数据的速度;
缺点:创建和维护索引的时间增加了
创建索引的三种方式:
一、创建表的时候可以创建索引
create table 表名 (属性名 数据类型 [约束条件],
属性名 数据类型 [约束条件],
.....
属性名 数据类型
[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY
[别名](属性名));
例如:
1、创建普通索引
这类索引可以创建在任何数据类型中
CREATE TABLE t_user1(id INT ,
userName VARCHAR(20),
PASSWORD VARCHAR(20),
INDEX (userName)
);
2、唯一性索引
使用UNIQUE参数可以设置,创建唯一性索引是,限制该索引的值必须是唯一的
CREATE TABLE t_user2(id INT ,
userName VARCHAR(20),
PASSWORD VARCHAR(20),
UNIQUE INDEX index_userName(userName)
);
上面1,2都属于单列索引
3、多列索引
CREATE TABLE t_user3(id INT ,
userName VARCHAR(20),
PASSWORD VARCHAR(20),
INDEX index_userName_password(userName,PASSWORD)
);
二、在已经存在的表上创建索引
create [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 on 表名
(属性名 [(长度)][asc|desc]);
例如:
1、创建普通索引
CREATE INDEX index_userName ON t_user4(userName);
2、唯一性索引
CREATE UNIQUE INDEX index_userName ON t_user4(userName);
3、多列索引
CREATE INDEX index_userName_password ON t_user4(userName,PASSWORD);
三、用alter table语句创建索引
alter table 表名 add [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名
(属性名 [(长度)][asc|desc]);
例如:
1、创建普通索引
ALTER TABLE t_user5 ADD INDEX index_userName(userName);
2、唯一性索引
ALTER TABLE t_user5 ADD UNIQUE INDEX index_userName(userName);
3、多列索引
ALTER TABLE t_user5 ADD INDEX index_userName_password(userName,PASSWORD);
删除索引
DROP INDEX 索引名 ON 表名;