安全数量的线路一次上传到数据库?

时间:2015-02-09 06:22:07

标签: php mysqli

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

1 个答案:

答案 0 :(得分:1)

对于大多数情况,我认为一个简单的答案是,只要您的查询长度不超过您的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是每行的最大长度,基于每个字段的理论最大值。如果您的数据库计划良好,并且您的输入已经过验证以支持这些限制,那么您应该能够根据数据库中的长度限制来解决这个问题。请注意,您还需要考虑前导(的空间,尾随),行数据集之间的,,字符串值的引号等等。

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