为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:5.7.25-TiDB-v4.0.0-rc
- 【问题描述】:
已设置set tidb_batch_insert=1; 执行插入还是提示Transaction is too large。
看其他贴,有回复说:tidb_batch_insert=1 不建议使用,4.0 已经默认关闭。
现在想问一下,如何开启。
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
已设置set tidb_batch_insert=1; 执行插入还是提示Transaction is too large。
看其他贴,有回复说:tidb_batch_insert=1 不建议使用,4.0 已经默认关闭。
现在想问一下,如何开启。
我真的是太难了。。。
感谢回复
大事务这个功能该如何使用呢?其实大事务是对事务机制的优化,唯一需要修改的是 TiDB 的配置文件,找到这一处配置:
[performance]
txn-total-size-limit = 104857600
如果是集群部署,上面的配置需要单独去每个tidb节点设置么?
如果是通过 tiup 关闭的,可以通过 tiup cluster edit-config 统一修改参数,tiup cluster reload 使参数生效
https://pingcap.com/docs-cn/stable/maintain-tidb-using-tiup/#修改配置参数
如果是 tidb-ansible 方式管理的,可以修改 ${deploy_dir}/conf/tidb.yaml 文件修改参数,然后通过 deploy 将修改后的参数文件分发到目标机器,重启生效
如果要调整 tidb-server 中事务大小限制参数 txn-total-size-limit
为 1G
,该参数位于 performance 模块下,调整后的配置如下:
server_configs:
tidb:
performance.txn-total-size-limit: 1073741824
然后执行 tiup cluster reload ${cluster-name} -N tidb
命令滚动重启。
我按上面描述的进行操作之后,操作界面提示Reloaded cluster test-cluster
successfully。
但之前的语句还是提示Transaction is too large, size: 104857674
从哪里可以查看配置是否生效?
奇怪,节点上tidb.toml中设置的是104857600
如果要调整 tidb-server 中事务大小限制参数 txn-total-size-limit
为 1G
,该参数位于 performance 模块下,调整后的配置如下:
server_configs:
tidb:
performance.txn-total-size-limit: 1073741824
这个配置我是这样加的,执行tiup cluster edit-config test-cluster,然后再里面添加
server_configs:
tidb:
performance.txn-total-size-limit: 1073741824
是添加,不是修改。
我这边测试了一下是可以修改成功的,
tiup cluster reload sg-latest -R tidb 生效配置
查看目标机器上 tidb.toml 配置文件生效
我这边按照操作时生效了的。只是,tiup中配置的是1073741824,reload之后,去各节点中查看toml是104857600。查看tidb.log中也是104857600。
文档中描述
然后把数字调大就可以了,然后就可以愉快地继续使用了,比如说往后面多加两个零,
只要在 10737418240(10G) 以内就行。来直观感受下在 v3.x 版本和 v4.0 版本执行一个
插入几十万条数据语句的情况。
我这里按照1G设置的
我现在只能手工到各个节点去修改tidb.toml,然后stop_tidb.sh,start_tidb.sh来生效。
可以先临时这样修改一下参数,我这边再尝试复现一下这个问题,如果有更新及时跟你同步。
麻烦确认一下你的 tiup 以及 tiup cluster 版本
tiup --version
tiup --binary cluster
[tidb@ ~]$ tiup --version
tiup version v0.0.5 tiup
Go Version: go1.13
Git Branch: master
GitHash: 9a454f3
Build Time: 2020-04-16 10:33:50 +0800
[tidb@ ~]$ tiup --binary cluster
/home/tidb/.tiup/components/cluster/v0.4.9/cluster
感谢感谢
客气了
我也遇到了这个问题,insert from 出现的,我一个表的数据有100g,服务器内存只有8g。怎么办?