我正在编写将使用批量插入语句的迁移。它在数据库中搜索某些信息并将其编译为特定表中使用的格式并使用下面的 INSERT 方法将其写入。将运行它的 MySQL 机器都有一个 16MB 的 max_allowed_packet 大小,我无法更改。
我对此很陌生。当我的缓冲区中的字符刚好低于 16MB 时,我试图插入缓冲区中的内容。这是行不通的。max_allowed_packet 大小超过 16MB 并导致问题。对于任何知道自己在做什么的人(但对我而言),原因可能很明显。
我需要知道如何计算给定 max_allowed_packet 大小可以插入多少个字符。我们正在使用 INNODB 存储引擎。
这或多或少是我的插入语句的样子:
INSERT INTO _table_ (col_name1, col_name2, col_name3)
VALUES (val1, val2, val3), (val1, val2, val3), (val1, val2, val3)... etc.
如果我需要提供更多信息,请告诉我。在这一点上,我真的不知道该怎么办。
编辑以澄清问题。