经常有测试sql语句性能的场景,这个时候往往需要做一个几百万乃至上千万的条记录的数据表,那么批量插入数据的sql语句就必不可少了。
最省心、速度最快的方法,莫过于用存储过程开启事务,批量插入一批数据之后提交,然后不断重复这个步骤。
CREATE PROCEDURE proc_insertDate(in i int)
BEGIN
DECLARE l_i int DEFAULT 0;
START TRANSACTION;
WHILE
l_i<i
DO
INSERT INTO tableName(`name`,`sex`) VALUES ('Jim',0);
SET l_i=l_i+1;
IF l_i%2000=0 THEN
COMMIT;
START TRANSACTION;
END IF;
END WHILE;
COMMIT;
END
经过测试,我的电脑速度最快的是2000条提交一次,不过差距不是特别大。