我有一個簡單的表測試有三個欄插入1萬條記錄中花費過多時間MYSQL
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
考慮到這是一種插入數據的非常低效的方式,您的數據庫實際上是在每秒插入幾百行數據。它沒有那麼壞。考慮到機器上的大多數內核對這種串行插入沒有好處(它是單線程的)......簡而言之,由於您使用的數據庫錯誤,所以速度很慢。 –
我沒有得到您使用錯誤的數據庫@AssafLavie 的觀點,並且還建議我使用有效的方式插入數據? – Ali
不是錯誤的分貝,但使用分貝錯誤的方式。批量插入或LOAD DATA。這就是它的目的。 –