TIDB: transaction too large, len:300001

批量事务插入报错 transaction too large, len:300001

issue上搜索:
https://github.com/pingcap/docs-cn/issues/156
问题大概如下:

TiDB 对单个事务的大小有限制,这层限制是在 KV 层面,有如下三个限制:

单条 KV entry 不超过 6MB
KV entry 的总条数不超过 30w
KV entry 的总大小不超过 100MB
简单来说一行数据会映射为一个 KV entry,每多一个索引,也会增加一个 KV entry,所以这个限制反映在 SQL 层面是:
单行数据不大于 6MB
总的行数*(1 + 索引个数) < 30w
一次提交的所以数据小于 100MB

总的行数*(1 + 索引个数) < 30w
KV entry的计算,是需要算上索引数量的。
假如表有4个索引,那么一次事务提交的总行数不能超过6W条。

解决办法:
把大事务拆分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值