首页 理论教育利用MySQL创建多列索引

利用MySQL创建多列索引

【摘要】:创建多列索引的SQL代码如下:在提示符窗口中查看MySQL创建多列索引的操作效果,如图7.10所示。图7.11从上图中可以看出,name和sex字段上已经建立了一个名为index5_ns的多列索引。先在index5数据表中添加一些数据记录,然后使用EXPLAIN语句可以查看索引的使用情况。图7.12从上图中可以看出,possible_keys和key的值都是index5_ns。使用多列索引时一定要特别注意,只有使用了索引中的第一个字段时才会触发索引。因此,在优化查询速度时,可以考虑优化多列索引。

创建多列索引是在表的多个字段上创建一个索引。

实例:创建一个名为index5的数据表,在表中的name和sex字段上建立名为index5_ns的多列索引。

(1) 创建多列索引的SQL代码如下:

在提示符窗口中查看MySQL创建多列索引的操作效果,如图7.10所示。

图7.10

从上图中可以看出,代码的执行结果显示index5_ns索引创建成功。

(2) 使用SHOW CREATE TABLE语句查看index5数据表的结构,如图7.11所示。

图7.11

从上图中可以看出,name和sex字段上已经建立了一个名为index5_ns的多列索引。

(3) 多列索引中,只有查询条件中使用了这些字段中第一个字段时,索引才会被使用。先在index5数据表中添加一些数据记录,然后使用EXPLAIN语句可以查看索引的使用情况。

(www.chuimin.cn)

如果只是使用name字段作为查询条件进行查询,如图7.12所示。

图7.12

从上图中可以看出,possible_keys和key的值都是index5_ns。Extra(额外信息)显示正在使用索引。这说明使用name字段进行索引时,索引index5_ns已经被使用。

(4) 如果只使用sex字段作为查询条件进行查询。

查询结果如图7.13所示。

图7.13

从上图中可以看出,possible_keys和key的值都是NULL。Extra(额外信息)显示正在使用where条件查询,而未使用索引。

使用多列索引时一定要特别注意,只有使用了索引中的第一个字段时才会触发索引。如果没有使用索引中的第一个字段,那么这个多列索引就不会起作用。因此,在优化查询速度时,可以考虑优化多列索引。