读性能慢-TiDB Server 读流程详解

3.Compile 模块

拿到 AST 之后,就可以做各种验证(预处理、合法性验证,权限检验)、变换、优化,这一系列动作的入口在 compile,最重要的三个步骤:

  1. 做一些合法性检查以及名字绑定;
  2. 制定查询计划,并优化,这是最核心的步骤之一。这里有一个特殊的函数 TryFastPlan,如果这里判断规则可以符合 PointGet,会跳过后续的优化,直接走点查
  3. 构造 executor.ExecStmt 结构:这个 ExecStmt 结构持有查询计划,是后续执行的基础

监控说明:

  • 位置:TiDB – Executor – Compile Duration 面板
    正常情况下,” Compile Duration” 小于 30 ms

    注意:Parse Duration / Compile Duration 是纯 CPU 操作,如果 CPU 负载不高,但是耗时比较长,大部分情况是 insert … values 太多,Compile 高更可能的情况是带了非关联子查询

3 个赞