数据库
首页 > 数据库> > MySQL 是否在扫描额外的记录

MySQL 是否在扫描额外的记录

作者:互联网

衡量查询开销的指标

它们大致反映了MySQL在内部执行查询时,需要访问多少数据,可以大概推算出查询运行的时间

响应时间

响应时间 = 服务时间 + 排队时间

使用快速上限估计法,来查询响应时间

扫描的行数和返回的行数字

分析查询时,查看该查询扫描的行数很有帮助,理想情况下扫描的行数和返回的行数应该是相同的

但例如在做一个关联查询时,服务器必须要扫描多行才能生成结果集中的一行

扫描的行数和访问类型

有些访问方式可能需要扫描很多行才能返回一行结果,有些访问方式可能无须扫描就能返回结果

在EXPLAIN语句中的type列反映了访问类型

 

 

 

 

 

 

EXPLAIN的结果也显示MySQL预估需要访问10行数据

删掉索引之后,变成了一个全表扫描

 

 

MySQL通过WHERE条件筛选存储引擎返回的记录

以下三种方式应用WHERE条件,从好到坏依次为

然后并不是说增加索引就能让扫描的行数等于返回的行数

 

查询数量需要读取几千行数据,但仅返回几百行,没有什么索引能够让这样的查询减少需要扫描的行数

查询需要扫描大量的数据但只返回少数的行

标签:返回,额外,扫描,查询,索引,行数,MySQL
来源: https://www.cnblogs.com/SourLemon/p/15465839.html