【问题标题】:bulk insert mysql - can i use ignore clause? is there a limit to no. of records for bulk insert?批量插入 mysql - 我可以使用忽略子句吗?有没有限制。批量插入的记录?
【发布时间】:2010-11-19 21:38:55
【问题描述】:

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

插入朋友(请求者,好友)值(value1,value2),(value2,value1),(value3,value4),(value4,value3),...

我想知道以下内容:

1) 我可以使用忽略吗?例如

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

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

2) 数量是否有限制。我可以将多少记录用于这样的批量插入?

谢谢。

【问题讨论】:

    标签: php mysql bulkinsert


    【解决方案1】:

    是的,您可以使用“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

    【讨论】:

      【解决方案2】:

      一个 INSERT 查询也有 50,000 行的限制。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-07
        • 2017-12-29
        • 1970-01-01
        • 2019-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多