1 为什么查询速度会慢
查询速度最重要的就是响应时间。
把查询看做是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定时间。
如果要优化查询任务
- 优化其子任务
- 消除其中一个子任务
- 减少任务的执行次数
- 让子任务运行的更快
查询的生命周期:
- 从客户端到服务器
- 在服务器上进行解析,生成执行计划
- 执行(整个生命周期最重要的阶段)
- 返回结果给客户端
执行包括大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序,分组等。
完成这些任务的时候,查询需要在不同的地方花费时间。包括网络,CPU计算,生成统计信息和执行计划、锁等待(互斥等待)等操作。尤其是向底层存储引擎检索数据的调用操作,这些调用需要在内存操作、CPU操作和内存不足时导致的I/O操作_上消耗时间。根据存储引擎不同,可能还会产生大量的上下文切换以及系统调用。