为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:
- 【问题描述】:tidb insert慢,有好多慢查询,有办法可以知道一条sql在什么地方消耗的时间最多吗?
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。
可以根据 TiDB 的写入流程排查一下,从 Dashboard 看问题应该是在 TiKV 端 commit 延迟时间长导致的。可以看看那具体的 slow query log 里面记录的 insert 的情况。从反馈的信息看,你的集群采用的混合部署,可能存在资源瓶颈,建议检查一下磁盘的性能和 TiKV 写入延迟。
磁盘使用的是ssd, 没有发现资源瓶颈, 能请教一下TiKV 写入延迟怎么看吗?
看一下这里,说明在 insert 写入的 2PC 阶段的 prewrite 节点等待了 599 ms,这里可能是在等锁。可以通过 KV ERROR 面板看一下。https://docs.pingcap.com/zh/tidb/stable/troubleshoot-write-conflicts
另外可以看一下这个 slow log 的解析 https://docs.pingcap.com/zh/tidb/stable/identify-slow-queries