Query_time 远大于 Parse_time + Compile_time + Prewrite_time + Commit_time + Get_commit_ts_time?

  • 【TiDB 版本】:v3.0.12
  • 【问题描述】:
    一条insert的慢查询,
    Query_time 远大于 Parse_time + Compile_time + Prewrite_time + Commit_time + Get_commit_ts_time
    那超出的这部分时间是耗在哪里的?

慢日志中目前还有过程没有监控到,所以需要关注的仅有当前展示的这些,看是否有某个值虚高。

当前 insert 慢问题,可以从

  1. 是否存在写热点问题:https://book.tidb.io/session4/chapter7/hotspot-resolved.html
  2. 是否当前集群负载和磁盘压力比较大,overview 中 tidb - qps/duration 和 system info 可以看到大概的信息。
  3. insert batch 是多少,如果是隐形事务提交,建议 values 跟多个值,批次在 200 - 500 之间为好。

没有监控到的过程主要是什么过程?有1s以上的时间不知到耗在哪里,当前展示的这些耗时都没有超过0.1s的,应该不至于导致慢查询吧。

  1. 可以通过监控看下是否有写入冲突的情况,Overview -> TiDB -> KV backoff OPS/Lock resolve OPS
  2. 另外应用有使用 cursor 连接吗,如果 cursor 没有及时断开连接,这一部分的耗时也会被记录在 Query_time 中