【索引对单个表查询的影响】
索引对单个表查询的影响
索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。表越大,花费时间越多。
如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。如果一个表有1000 行,这比顺序读取至少快100倍。注意你需要存取几乎所有1000行,它较快的顺序读取,因为此时我们避免磁盘寻道。
例如对下面这样的一个student表:
这样,我们试图对它进行一个特定查询时,就不得不做一个全表的扫描,速度很慢。
例如,我们查找出所有english成绩不及格的学生。
如果,我们为english列创建一个索引:
因此在执行下述查询
mysql>SELECT name,english FROM user WHERE english<60;
其结果为:
其结果为:
你应该可以发现,这个结果与未索引english列之前的不同,它是排序的,原因正式如上所述。