表里的数据大概在5000w左右,根据主键更新消耗50s,这个可能是什么原因导致的呢?要如何优化
调整这个参数试试 tidb_distsql_scan_concurrency
- 作用域:SESSION | GLOBAL
- 默认值:
15
- 范围:
[1, 256]
- 这个变量用来设置 scan 操作的并发度。
- AP 类应用适合较大的值,TP 类应用适合较小的值。对于 AP 类应用,最大值建议不要超过所有 TiKV 节点的 CPU 核数。
- 若表的分区较多可以适当调小该参数,避免 TiKV 内存溢出 (OOM)。
1 个赞
另外,TiDB的部署架构和服务器配置能不能发一下?
看下执行计划,最好是分批提交。
看截图,50s耗时,不在采集的时间点范围内
我看updaet里用了函数。
看下这SQL前后的CPU和网络情况,总的cpu可以看overview、tikv detail. black_exportor有Ping延迟
从执行计划来看,SQL慢在Ponit_Get这一步,也就是使用主键或唯一索引进行等值查询的这一步,后面有operation info那里有个lock,估计是锁冲突
图片放不大。
后面的也贴出来,看着应该是等锁
请查查有没有锁,别说是主键了,就是全表也不至于这么慢。基本是锁导致的。
果断收藏。
看执行计划走的是point_get,说明走主键了。看看tidb日志里面有否有锁冲突的相关报错内容。