我有一堆数据想要插入,我决定对 mysql 使用批量插入。
插入朋友(请求者、好友)值 (value1, value2), (value2, value1), (value3, value4), (value4, value3), ...
我想了解以下信息:
1)我可以使用忽略吗?例如
将忽略插入朋友(请求者,好友)值(值1,值2),(值2,值1),(值3,值4),(值4,值3),...
如果我有重复的怎么办? a) 不会插入所有内容吗? b) 在重复记录之前插入记录并停止处理之后的数据? c) 忽略重复项并继续其余部分?
2)数量有限制吗?我可以使用多少条记录进行这样的批量插入?
谢谢。
是的,您可以使用“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 http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_query_cache_limit.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)