tidb4.0导入大量数据提示Transaction is too large

已设置set tidb_batch_insert=1; 之后inser into a select b,仍然报错> 8004 - Transaction is too large, size: 104857600, 之前用tidb3.x没有这样报错过,请问是什么原因呢.

  1. tidb_batch_insert=1 不建议使用,4.0 已经默认关闭。
  2. 可以尝试使用大事务,不过目前应该是实验属性,注意如果使用了binlog同步,无法使用大事务

https://github.com/pingcap/tidb/blob/v4.0.0-rc.1/config/config.toml.example

  1. 将事务分批,修改的总量小于 100 M

也就是说在tidb 4.0 版本,一个简单的insert into 还是搞不定? 就几十万数据。

1、v4 和 v3 表现有差异的原因,上面以及说了,是 v4 默认关别了 batch 功能(所以你修改参数也是没用的)
2、可以修改 tidb-server 的参数,把事物限制改大一点:txn_total_size_limit , 该配置项的最大值不超过 10737418240 (表示 10GB),不过如果使用了 大事物,需要考虑性能及 同步问题
3、我们建议事物改成小事物来提高性能