插入1百万条记录需要花费太多时间MYSQL

时间:2015-11-20 06:30:51

标签: mysql performance bulkinsert

我有一个简单的表格测试,有三列

id -> primary key (auto increment)
name -> varchar
age -> int

我使用一个简单的存储过程来填充表中的1百万个数据。

drop PROCEDURE if  EXISTS big_data;
CREATE PROCEDURE big_data()
BEGIN
    DECLARE i int DEFAULT 1;
    WHILE i <= 10000000 DO
        INSERT INTO test(id, name, age) VALUES (i, 'name', 34);
        SET i = i + 1;
    END WHILE;
END;

CALL big_data(); 

我面临的问题是使用这个简单的架构插入100万条记录需要大约6到7个小时。我想知道如何快速插入数据? 我不想使用LOAD DATA INFILE查询,我没有更改my.ini文件中的任何设置。

只想知道插入过慢的原因?

系统规范

    Mysql version 5.5.25a
    innodb_version =1.1.8
    System = 16GB RAM / 8 cores @ 2.70 GHz

2 个答案:

答案 0 :(得分:0)

一次插入100行的速度是100行1 INSERTs的10倍:

INSERT INTO foo(a,b,c)        VALUES        (1,2,3),        (4,5,6),......;

LOAD DATA可能更快。

答案 1 :(得分:-1)

尝试将查询作为单个字符串,然后立即执行

they used the class names like row in their project, which are conflicting with the names in the bootstrap