性能优化配置相关问题

【 TiDB 版本】v7.5

我最近在学习 Tidb 的一些配置参数来进行 Tidb 的性能测试,在了解了 Tidb 的存储架构后,有个配置参数不清楚是否可以设置。
比如一次查询请求中, Tidb 需要经访问 PD 跟 TIKV 来获取该表的一批数据,我想知道每次获取的这一批数据的数据条数大小是否有参数可以设置。
我找到的一个参数是 max-batch-size,但这个参数的效果似乎跟我想象中的不太一样。

这个是rpc的批次。多个rpc请求放一起,减少tidb到tikv的往返次数。增大了吞吐但是也增加了延迟。
调优的话,可以看看这一系列的文档。
https://docs.pingcap.com/zh/tidb/stable/performance-tuning-overview

1 个赞

那有其他参数可以设置 Tidb 一次请求能获取到的最大数据量吗。理论上来说,千万级大表,一次只取 1024 条数据的话,这个网络请求次数就太多了。

主要是想了解 Tidb 在存算分离结构下,对此的一些配置以及权衡

官方推荐的,保持默认即可,目前没听过哪个需要改这个的。基本都是存算分离的

别折腾了,在v7.5版本调参数应该都没明显作用了

1 个赞

从sql层面优化其实效果最好,合适的索引,用好计算下推,复杂sql用好tiflash,基本可解决80%以上问题

这个就相当于能达到你的目的,tidb每次和tikv的通讯都是依次grpc,如果你调大grpc的batch,把更多的grpc放在一起发送也相当于减少了通讯量吧。

1 个赞

User Response time = Service time + Queuing delay + Coherency delay

打个卡看看

个人理解如果根据数据条数大小设置不妥,因为如果一条含有 blob 字段超过了限制那岂不是永远获取不到

1 个赞

tidb7.5 现在性能优化 如此优秀了!!?? :star_struck: 参数调整不起作用了或者明显了?

其实没有理解,是减少网络交互对于性能影响,还是想提升批量写入的性能

数据库默认安装有两种设计,一种是占最少资源然后你有需求调大,比如mysql,tidb和oracle sqlserver一样,一开始就按占用服务器大部分资源去的,所以如果组件分开不搞混合部署,高版本不用改什么参数优化。遇到具体问题,比如建索引慢,表分析慢可以再调

对并发性能可能有所提升。但是对单个请求的响应估计不会影响太多,有些客户的 sql 写的比较差,比如 group 跟 sort 这种需要捞表数据的阶段,必须要像上的老哥说的一样从 sql 层面优化,一批取 1024 条数据要捞完数据需要发送很多次取数据的请求。

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。