Php 批量插入mysql-我可以使用ignore子句吗?批量插入的记录数量是否有限制?

Php 批量插入mysql-我可以使用ignore子句吗?批量插入的记录数量是否有限制?,php,mysql,bulkinsert,Php,Mysql,Bulkinsert,我有一大堆数据要插入,我决定使用批量插入mysql 将值(value1,value2),(value2,value1),(value3,value4),(value4,value3) 我想知道以下几点: 1) 我可以使用忽略吗?乙二醇 将忽略插入好友(请求者、好友)值(value1、value2)、(value2、value1)、(value3、value4)、(value4、value3) 如果我有一个副本会发生什么?它不会a)插入所有内容吗?b) 在重复记录之前插入记录,然后停止处理数据?c

我有一大堆数据要插入,我决定使用批量插入mysql

将值(value1,value2),(value2,value1),(value3,value4),(value4,value3)

我想知道以下几点:

1) 我可以使用忽略吗?乙二醇

将忽略插入好友(请求者、好友)值(value1、value2)、(value2、value1)、(value3、value4)、(value4、value3)

如果我有一个副本会发生什么?它不会a)插入所有内容吗?b) 在重复记录之前插入记录,然后停止处理数据?c) 忽略复制品,继续进行其余的

2) 对于这样的批量插入,我可以使用的记录数量有限制吗

谢谢。

是的,您可以使用“忽略”关键字,它只会忽略重复的错误。它将尽可能插入每一行,跳过那些可能导致重复的行(并且不会停止处理数据)。如果您这样做(我们假设第一列是主键):

将忽略插入c值(1,1)、(2,2)、(3,3)、(3,5)、(4,5)

这意味着(3,3)将被插入,而(3,5)将不会被插入。将插入除(3,5)之外的所有内容(假设有一个新表)

可能没有硬性限制,但您可能希望进行测试,以确定应根据需要在何处划定界限


编辑:MySQL似乎对SQL查询的大小有一个可配置的限制,默认为1MB。更多信息:。

插入查询也有50000行的限制