提交的事务中数据随机性较高,随着数据量的增加,写入事务涉及到的region达到近1000,几乎每个key都在不同的region,导致耗时到秒级,请问有什么优化建议吗
写入的key 均匀分散在不同的region 是件狠棒的事情,不然就会变成热点问题了,恐怕会更慢…
优化的方向无非是:
- 处理性能(CPU、内存,磁盘IO)
- 网络吞吐
- 业务改善(有效拆分,减少一次性提交的量级)
具体的,还是参考 prometheus 以及 dashboard 上的统计数据和性能数据进行分析
1 个赞
谢谢,我再想想办法
数据过于离散其实也不好,相关表是做了热点打散操作么?
每次要处理那么多region,可以参考tikv的线程池调优,把tikv的线程池适当调整调整,让更多的处理并发起来。
https://docs.pingcap.com/zh/tidb/stable/tune-tikv-thread-performance#tikv-线程池性能调优
region如果特别小,可以适当调大一些,合并一些。
只要单个region的请求造成的压力不超过机器能承受的压力,就不算热点。
因为数据的key都是hash,所以非常离散
好的,谢谢,我再尝试调一下参数
过于离散对当前 TiDB 读取其实是有一定的不友好的,tidb 和 tikv 交互,task 拆分按照 region 分的。
当前也可以试试这个参数:https://docs.pingcap.com/zh/tidb/dev/tidb-configuration-file#grpc-connection-count