为什么查询速度会慢

简介:

在尝试编写快速的查询之前,需要清楚一点,真正重要的是响应时间

如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上要优化其子任务,要么消除其中的一些子任务,要么减少子任务的执行次数,要么让子任务运行的更快。

Mysql在执行查询的时候有哪些子任务,哪些子任务运行的速度很慢?这里很难给出完整的列表,但如果按照第三章介绍的方法对查询进行剖析,就能看到查询所执行的子任务。

通常来说,查询的生命周期大致可以按照顺序来看从客户端,到服务器,然后再服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其中“执行”可以认为是整个生命周期中最重要的阶段,这其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序、分组等。

在完成这些任务的时候,查询需要再不同的地方花费时间,包括网络,cpu计算,生成统计信息和执行计划,锁等待(互斥锁)等操作,尤其是向底层存储引擎检索数据的调用操作,这些调用需要再内存操作、cpu操作和内存不足、cpu操作和内存不足时导致的I/O操作上消耗时间,根据存储引擎不同,可能还会产生大量的上下文切换以及系统调用。

在每一个消耗大量时间的查询案例中,我们都能看到一些不必要的额外操作某些操作被额外的重复了很多次某些操作执行的太慢等。优化查询的目的就是减少和消除这些操作所花费的时间。

目录
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
3、SQL查询-复杂查询
3、SQL查询-复杂查询
58 0
|
3月前
|
SQL 存储 开发框架
2、SQL查询-简单查询
2、SQL查询-简单查询
23 0
|
5月前
|
NoSQL MongoDB 数据库
查询数据
查询数据
41 4
|
6月前
|
SQL 存储
6. 复杂查询
6. 复杂查询
|
6月前
|
算法 Oracle 关系型数据库
数据库等值查询与统计信息
简介: 统计信息是为优化器的 cost 估算提供数据支撑,其中很重要的一点需求便是等值查询(EQUALS, IN 等) 场景下的基数估算。
105 0
数据库等值查询与统计信息
|
缓存 自然语言处理 网络架构
Elasticearch 查询详解 (二)
elk官网: [https://www.elastic.co/guide/en/enterprise-search-clients/index.html](https://www.elastic.co/guide/en/enterprise-search-clients/index.html) 作者主页:https://www.couragesteak.com/
Elasticearch 查询详解 (二)
|
C++
202009-1称检测点查询
202009-1称检测点查询
78 0
202009-1称检测点查询
查询-多条件查询
查询-多条件查询
103 0
查询-多条件查询
小技巧 - 如何查询医保卡号?
小技巧 - 如何查询医保卡号?
1522 0
小技巧 - 如何查询医保卡号?
|
SQL 关系型数据库 MySQL
五、简单查询
五、简单查询
143 0