《高性能MySQL》——第五章创建高性能索引

时间:2022-04-08 21:19:34

1.创建索引基本语法格

在MySQL中,在已经存在的表上,可以通过ALTER TABLE语句直接为表上的一个或几个字段创建索引。基本语法格式如下:

ALTER TABLE 表名 ADD [UNIQUE | FULLTEXT | SPATIAL] INDEX 索引名(字段名 [(长度)] [ASC | DESC]);

表名:是指需要创建索引的表的名称。该表必须是已经存在的,如果不存在,需要先创建。
UNIQUE:可选。表示索引为唯一性索引。
FULLTEXT:可选。表示索引为全文索引。
SPATIAL:可选。表示索引为空间索引。
INDEX:用来指定字段为索引的。
索引名:给创建的索引起一个新名称。
字段名:指定索引对应的字段的名称。该字段必须为已经定义好的字段。
长度:指定索引的长度。必须是字符串类型才可以使用。
ASC:可选。表示升序排列。
DESC:可选。表示降序排列。

2.MySQL创建普通索引

使用ALTER TABLE语句创建index7_name索引。SQL代码如下:

ALTER TABLE index7 ADD INDEX index7_name(name(20))

3.MySQL创建唯一性索引

在index13表中的course_id字段上,建立名为index13_id的唯一性索引。SQL代码如下:

ALTER TABLE index13 ADD UNIQUE INDEX index13_id(course_id);

4.MySQL创建全文索引

在index14表中的info字段上建立名为index14_info的全文索引。SQL代码如下:

ALTER TABLE index14 ADD FULLTEXT INDEX index14_info(info);

5.MySQL创建单列索引

在index15表中的address字段上建立名为index15_addr的单列索引。address字段的数据类型为VARCHAR(20),索引的数据类型为CHAR(4)。SQL代码如下:

ALTER TABLE index15 ADD INDEX index15_addr(address(4));

6.MySQL创建多列索引

在index16表中的name和address字段上建立名为index16_na的多列索引。SQL代码如下:

ALTER TABLE index16 ADD INDEX index16_na(name,address);

7.MySQL创建空间索引

ALTER TABLE index17 ADD SPATIAL INDEX index17_line(line);

其中,SPATIAL用于设置索引为空间索引;表index17的存储引擎必须是MyISAM类型;line字段必须是非空的,而且必须是空间数据类型。

8.查看索引

DESC category
SHOW KEYS
FROM category
SHOW
INDEX FROM category
SHOW INDEXES
FROM category