我有一大堆数据要插入,我决定对mysql使用bulk insert。
插入好友(请求者,好友)值(value1,value2),(value2,value1),(value3,value4),(value4,value3),...
我想知道以下几点:
1)可以使用ignore吗?例如
将忽略插入好友(请求者,好友)值(value1,value2),(value2,value1),(value3,value4),(value4,value3),...
如果我有重复的,会发生什么?它会a)不插入所有内容吗?b)在重复记录之前插入记录,在重复记录之后停止处理数据?c)忽略副本,继续其余部分?
2) no有限制吗?我可以用于像这样的大容量插入的记录的数量?
谢谢。
发布于 2009-08-15 15:15:11
是的,你可以使用" ignore“关键字,它将简单地忽略重复的错误。它将尽可能地插入每一行,跳过那些会导致重复的行(并且它不会停止处理数据)。如果您这样做(我们假设第一列是主键):
在c值(1,1),(2,2),(3,3),(3,5),(4,5)中插入忽略;
这意味着(3,3)将被插入,而(3,5)将不被插入。除了(3,5)之外的所有内容都将被插入(假设是一个新的表)。
可能没有硬限制,但您可能想要进行测试,看看您应该根据自己的需求在哪里划清界限。
编辑:看起来MySQL对SQL查询的大小有一个可配置的限制,默认值是1MB。更多信息:http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_query_cache_limit。
发布于 2009-08-16 13:17:25
一个INSERT查询最多只能有50,000行。
https://stackoverflow.com/questions/1282025
复制相似问题