关于txn-entry-size-limit的疑问

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.3

改参数的最大值是120M,那就是说如果我的一条记录超过120M就无法写入了。

QQ_1737507524761

1 个赞

155794932 大概是148M,这个限制没有问题啊

你在说啥兄弟。。

是的,我觉得你理解的是对的。

那我的记录的确比120M大的话,那就不能用tidb了?

:joy:一行记录150M?是不是记录有什么问题?

不是,我们业务需求的确如此

数据传输链路大概如下,可以根据需要适当配置:

MySQL driver → (1. MySQL协议数据包大小受max_allowed_packet控制,默认64MiB,超过截断,可调)
→ TiDB Server ->(2. 事务中单行大小受 trx-entry-size-limit控制,默认120MB,超过报错,可调)
→ (3. 单个事务的大小,含全部行,受txn-total-size-limit控制,默认100MIB,超过报错,可调)
→ Raft Entry-> (4. 单个日志最大大小,raft-entry-max-size控制,默认8MB,硬限制,不可调)
→ TiKV

1 个赞

调成160M试试呢?

你看我截图,文档上写的trx-entry-size-limit 最大120M,默认是6M。
另外 raft-entry-max-size 是可以调整的。我一直设置的是120M,和txn-entry-size-limit一样大

按照 utf8mb4 来计算,中文占用 3 字节,120 M 可以存储 41943040 个中文字符,问了下 AI 这个量大概是啥样,请问你存储的是什么东西?

41,943,040 个字的论文绝对算得上是非常大的论文,甚至可以说是超乎寻常的。我们可以通过一些常见的参考来理解这个数字的规模:

1. 学术论文的规模

  • 本科毕业论文:通常在 5,000 到 10,000 字之间。

  • 硕士论文:一般在 20,000 到 50,000 字之间。

  • 博士论文:通常在 50,000 到 150,000 字之间。

2. 书籍的规模

  • 普通小说:通常在 50,000 到 100,000 字之间。

  • 长篇小说:可能达到 200,000 字甚至更多。

  • 百科全书:单卷本可能在 500,000 字以上。

3. 41,943,040 字的规模

  • 41,943,040 字相当于 419 卷 每卷 100,000 字的书籍。

  • 如果以 博士论文 的规模(假设每篇 100,000 字)计算,这相当于 419 篇博士论文 的总字数。

  • 如果以 普通小说 的规模(假设每篇 50,000 字)计算,这相当于 838 篇普通小说 的总字数。

4. 实际应用场景

  • 学术研究:如此大规模的论文在学术界极为罕见。即使是多卷本的学术著作,也很少达到如此规模。

  • 文学作品:即使是《战争与和平》(约 587,000 字)或《追忆似水年华》(约 1,500,000 字)这样的长篇巨著,也远远达不到 41,943,040 字的规模。

  • 百科全书:即使是《不列颠百科全书》(约 44,000,000 字),也接近这个数字,但仍然略少一些。

结论

41,943,040 个字的论文在任何情况下都算得上是极其庞大的。它远远超出了普通学术论文、小说或任何单篇作品的规模,甚至可以与大型百科全书或多卷本学术著作相媲美。

1 个赞

是用了longtext导致超出限制吗?

如果是longtext导致的,现在还真没什么太好的办法。
还需要应用端改造一下了。

:+1:解答了我很大的困惑,我一直好奇什么数据会150M

是的是longtext

1 个赞