一次上载到数据库的安全行数


Safe Amount Of Lines To Upload To Database At Once?

使用MySQLi将多行上传到数据库,在单个实例中上传的最大最佳实践行数是多少?

我认为,对于大多数场景,一个简单的答案是,只要查询长度不超过mysql max_allowed_packet设置,那么具体的行数可能并不重要。

如果你考虑一下你的查询,考虑到你插入的每个字段的最大字段长度,一般公式应该是类似的

max_rows = floor((max_allowed_packet-base_query_length)/characters_per_row)

其中base_query_length是查询开始部分所需的字符数(例如INSERT into xxx (field1,field2,field3) VALUES

并且characters_per_row是基于每个字段的理论最大值的每一行的最大长度。如果你的数据库规划得很好,并且你的输入已经被验证为支持这些限制,那么你应该能够根据数据库中的长度限制来解决这个问题。注意,您还需要考虑前导(、尾随)、在行数据集之间分隔,、字符串值周围的引号等的空间。

注意,我还没有做任何研究来支持这个答案——在我看来,这似乎很有意义。如果有人可以反驳我的假设或对任何错误进行更正,请在评论中这样做或编辑我的回答