java.sql.SQLException: txn too large, size: 104857606.

java.sql.SQLException: txn too large, size: 104857606 replace into selet 报这个错是怎么回事?

1 个赞

事务太大了,参考下这个帖子,可能和你的情况类似

1 个赞

有没有修改事务大小命令啥的?应应急

编辑配置:
tiup cluster edit-config cluster-name

修改配置内容:
server_configs:
tidb:
performance.txn-total-size-limit: 10737418240 #新增这条,将单个事务大小上限加到10G

重新加载tidb server节点:
tiup cluster reload cluster-name -R tidb

先看看,仅供参考哈。

3 个赞

事务过大, 之前有个帖子翻翻

1 个赞

txn-total-size-limit

  • TiDB 单个事务大小限制
  • 默认值:104857600
  • 单位:Byte
  • 单个事务中,所有 key-value 记录的总大小不能超过该限制。该配置项的最大值不超过 1099511627776 (表示 1TB)。注意,如果使用了以 Kafka 为下游消费者的 binlog ,如: arbiter 集群,该配置项的值不能超过 1073741824 (表示 1GB),因为这是 Kafka 的处理单条消息的最大限制,超过该限制 Kafka 将会报错。
3 个赞

现在 txn-total-size-limit是多大?

3 个赞

由于底层存储引擎的限制,TiDB 要求单行不超过 6 MB。可以将一行的所有列根据类型转换为字节数并加和来估算单行大小。

TiDB 同时支持乐观事务与悲观事务,其中乐观事务是悲观事务的基础。由于乐观事务是先将修改缓存在私有内存中,因此,TiDB 对于单个事务的容量做了限制。

TiDB 中,单个事务的总大小默认不超过 100 MB,这个默认值可以通过配置文件中的配置项 txn-total-size-limit 进行修改,最大支持 10 GB。单个事务的实际大小限制还取决于服务器剩余可用内存的大小,执行事务时 TiDB 进程的内存消耗相对于事务大小会存在一定程度的放大,最大可能达到提交事务大小的 6 倍以上。

在 4.0 以前的版本,TiDB 限制了单个事务的键值对的总数量不超过 30 万条,从 4.0 版本起 TiDB 取消了这项限制。

1 个赞

官网给的建议

1 个赞

已经设到10G了吗?

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