TiDB 无资源瓶颈,但 SQL 出现大量本地流等待(local_stream),如何快速定位是服务端还是驱动问题?
- 同一 SQL,不同驱动 / 客户端表现不一致 → 驱动 / 客户端问题
- 同一 TiDB 节点,所有连接都存在 local_stream → 服务端配置 / 网络问题
- SQL 执行快、结果集大、fetch 等待高 → 驱动 fetch_size 配置问题
- 服务端无等待、无 IO、无 CPU 瓶颈 → 99% 驱动 / 客户端配置问题
1 个赞
查看 Grafana → TiDB → Executor 监控
看两个面板:
- LocalStream 等待占比
- Fetch And Wait 等待占比
同 SQL 用 mysql 客户端直连 TiDB,客户端无阻塞 = JDBC 驱动 /fetchSize 配置问题,客户端也堵 = TiDB 服务端。
选型要看具体场景。如果数据量在百TB以内、读多写少、对强一致性有要求,TiDB 挺合适。如果数据量级不大(单机够用)或业务逻辑复杂(存储过程、触发器多),MySQL 更省事。建议拿业务做 POC 测试对比。
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。