Tidb的update语句执行速度慢

tidb版本:2.1.10 update语句执行速度很慢,不存在大事务提交,请问tidb里面是有什么参数配置吗?还是tidb本身是有限制,又或者是当前版本对于tidb优化的问题??

1赞

一万条大约半个小时的耗时时间

可以通过以下方法帮助排查

  1. 通过慢查询记录确认慢在哪一块
  2. 通过 TiDB 监控 KV Duration 确认是不是 KV 慢 以及 KV Errors 中是不是有事务冲突或重试
  3. 通过 explain analyze 看看执行计划是不是合理

就是一条普通的修改语句,事务由tidb自动提交的

我们使用tidb作为一个数据仓库,数据由mysql同步过来的,没有直接操作的业务

如果版本是 3.0,可以尝试一下

trace update xxx

看看整个执行的细节到底各环节耗时是多少

这个是KV Duration的监控,一点左右发生的数据操作,只是数据同步过来,然后发现执行速度很慢,之前直接使用navicat修改数据,执行也是很慢

官方介绍不支持大事务删除以及修改,请问3.0的版本是否对于大事务有支持??

这里是tikv在一点返回的错误数,昨晚的三十万update数据,时间耗时两个小时,全部使用的就是普通的update table set clume=value where id =?,排查慢查询,排除执行计划合理问题

看第二张图主要是 region 分裂后 backoff 导致的执行慢

写入太猛了,region 分裂过多

3.0 的 tikv 有优化,表现应该会比 2.1.x 好一些的