使用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
是基于每个字段的理论最大值的每一行的最大长度。如果你的数据库规划得很好,并且你的输入已经被验证为支持这些限制,那么你应该能够根据数据库中的长度限制来解决这个问题。注意,您还需要考虑前导(
、尾随)
、在行数据集之间分隔,
、字符串值周围的引号等的空间。
注意,我还没有做任何研究来支持这个答案——在我看来,这似乎很有意义。如果有人可以反驳我的假设或对任何错误进行更正,请在评论中这样做或编辑我的回答