记录一次mysql导入千万条测试数据过慢的问题!

数据库在没有做任何优化的情况下,使用存储过程,插入1千万条测试数据。

CREATE PROCEDURE addmaxdata(IN n int)
BEGIN
DECLARE i INT DEFAULT 1;
START TRANSACTION;
WHILE (i <= n ) DO
INSERT INTO maxdata (name,createdate) VALUES (CONCAT('loser超',last_insert_id()),NOW());
set i=i+1;
END WHILE;
commit;
END

需要手动提交事务,把事务放在外面,等所有数据插入后,在手动提交事务,在时间上是一个质的飞越。不然的话,每次循环插入一条数据数据库就会自动开启一个事务来提交,占用很大的时间。

猜你喜欢

转载自www.cnblogs.com/bate/p/8922589.html