相当于目录,能够提高查询性能。但因为其会再建一个空间来存放这些索引,所以会消耗部分空间,并且在对数据进行插入、更新等操作时,也会自动对索引目录进行修改,因此某些情况下也会降低性能
1.类型
(1)普通索引
key/index(列名1,列名2, ...)
(2)唯一索引
unique key(列名1,列名2, ...)
要求索引值唯一
(3)主键索引
primary key(列名1,列名2, ...)
和唯一索引一样要求值唯一
(4)全文索引
fulltext(列名1,列名2, ...)
需要引擎为myisam
才能使用该索引,该索引的列可以通过使用:match(列名) ... against('查询内容')
,来实现模糊查询,举例:
mysql> select * from peoples where match(username) against('32');
2.设置索引
(1)建表时设置
直接在后面写:索引类型(列名),即可,举例:
CREATE TABLE people1 (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
username varchar(45) NOT NULL,
password char(32) not null comment '密码',
time datetime,
PRIMARY KEY (id),
unique(username),
key(password),
index(time)
);
(2)添加索引
当表已经建好时,要添加索引可以通过下面命令实现:
alter table 表名 add 索引类型(列名);
举例:
mysql> alter table peoples add fulltext(username);
3.查看索引
通过命令:
desc 表名
可以查看某个表下的索引(在key列),还有下面命令也可以查看索引,并且更详细:
show index from 表名\G