MySQL索引的用处

数据库 MySQL
MySQL索引在MySQL数据库中,可以有效提高查询的效率,尤其是查询数据量非常大时,效果更为明显,往往能使查询速度加快成千上万倍。

MySQL索引是很重要的概念,应用的范围非常广。那么,MySQL索引究竟有何作用呢?下文将带您一起寻找答案。

MySQL索引作用
在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。
例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。

SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3
此查询结果应该为1000行,每行包含3个相等的值。在无索引的情况下处理此查询,必须寻找3个表所有的组合,以便得出与WHERE子句相配的那些行。而可能的组合数目为1000×1000×1000(十亿),显然查询将会非常慢。
如果对每个表进行索引,就能极大地加速查询进程。利用索引的查询处理如下。

(1)从表t1中选择***行,查看此行所包含的数据。

(2)使用表t2上的索引,直接定位t2中与t1的值匹配的行。类似,利用表t3上的索引,直接定位t3中与来自t1的值匹配的行。

(3)扫描表t1的下一行并重复前面的过程,直到遍历t1中所有的行。
在此情形下,仍然对表t1执行了一个完全扫描,但能够在表t2和t3上进行索引查找直接取出这些表中的行,比未用索引时要快一百万倍。
利用MySQL索引,MySQL加速了WHERE子句满足条件行的搜索,而在多表连接查询时,在执行连接时加快了与其他表中的行匹配的速度。
 

 

 

 

【编辑推荐】

mysql索引的不足

MySql连接字符串的说明

mysql触发器的三个状态

mysql建主从服务器的实现方法

获取当前时间的MySql时间函数

 

责任编辑:段燃 来源: 互联网
相关推荐

2011-06-01 09:58:00

C++

2017-09-04 16:03:46

MySQLMySQL索引索引

2010-10-12 13:37:54

mysql索引

2010-10-12 13:42:11

MySQL单列索引

2015-10-30 15:55:43

MySQL

2020-09-28 15:34:38

ElasticSear索引MySQL

2015-06-15 14:58:16

MySQL索引

2021-05-09 09:57:26

MySQL数据库索引

2011-03-31 13:51:54

MySQL索引

2010-05-26 13:42:08

MySQL数据库索引

2010-10-12 16:50:14

MySQL Hash索

2010-11-11 15:48:54

MySQL单列索引

2010-11-24 14:31:16

mysql表索引

2017-07-25 12:07:14

MySQL索引SQL

2017-08-02 14:02:42

MysqlMysql优化Mysql索引

2019-11-14 16:23:07

MySQL索引数据库

2010-05-31 12:31:42

MySQL建立索引

2011-07-28 13:25:23

Linux

2010-05-31 12:55:49

MySQL索引

2009-06-24 10:25:25

C#泛型
点赞
收藏

51CTO技术栈公众号