连续 insert 100万条记录, 有没有什么 方法能让它尽可能快的完成, 5 秒内可行否? 我的
机器是 dell, p4 2.8GHz, 2G mem.现在我用 insert ignore 语句连续地操作, 需要  138.6 秒. :(

解决方案 »

  1.   

    试试拼接成一个sql执行 insert 表明 values(1)(2)
      

  2.   

    恩,之前刚做个测试,结果:num of values, time(seconds)
    10, 79.2
    20, 63.3
    50, 55.5
    100, 50.6
    200, 48.5
    300, 48.1看起来 20 好像是个比较合适的值。但是考虑到实际应用场景的话,是不是等攢到 20 个用户请求的时候在一块操作? 不知道是否可行。所以,我想知道是否还有其它的改进方法呢?
      

  3.   

    LOAD DATA INFILE <文件名>
    INTO TABLE <表名>
    FIELDS TERMINATED BY ','  -- 文件中的数据字段分割符
    ( <表字段列表> ) ; 
      

  4.   

    http://blog.chinaunix.net/u/29134/showart_400939.html
      

  5.   

    尝试了 LOAD   DATA   INFILE   的方法。直接在 mysql 中执行 load 命令,大约花了 34.5 秒。速度确有提高。
    不过,这种方式仅适用于初始化表时使用吧? 如果考虑实际应用场景,例如服务器收到大量访问请求,就无法采用
    这种方法了?To: yueliangdao0608看了下链接中的代码,大约也是同时 insert 多个 values 的意思?
     
      

  6.   

    恩。MYSQL 中的批量插入就是这样: