18.2.2 索引对查询速度的影响
索引可以快速的定位表中的某条记录。使用索引可以提高数据库查询的速度,从而提高数据库的性能。本小节将为读者介绍索引对查询速度的影响。
如果查询时不使用索引,查询语句将查询表中的所有字段。这样查询的速度会很慢。如果使用索引进行查询,查询语句只查询索引字段。这样可以减少查询的记录数,达到提高查询速度的目的。
【示例18-2】 下面是查询语句中不使用索引和使用索引的对比。现在分析未使用索引时的查询情况,EXPLAIN语句执行如下:mysql>EXPLAIN SELECT * FROM student WHEREname='张三'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: student
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 6
Extra: Using where
1 row in set (0.00 sec)
结果显示,rows参数的值为6。这说明这个查询语句查询了6条记录。现在在name字段上建立一个名为index_name的索引。CREATE语句执行如下:mysql>CREATE INDEX index_name ON student(name);
Query OK, 6 rows affected (0.09 sec)
Records: 6 Duplicates: 0 Warnings: 0
现在,name字段上已经有索引了,然后再分析查询语句的执行情况。EXPLAIN语句执行如下:mysql>EXPLAIN SELECT * FROM student WHEREname='张三'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: student
type: ref
possible_keys: index_name
key: index_name
key_len: 22
ref: const
rows: 1
Extra: Using where
1 row in set (0.01 sec)
结果显示,rows参数的值为1。这表示这个查询语句只查询了一条记录,其查询速度自然比查询6条记录快。而且possible_keys和key的值都是index_name,这说明查询时使用了index_name索引。
【责任编辑:云霞 TEL:(010)68476606】
点赞 0