提高mysql插入資料的速度

2021-08-26 19:01:20 字數 925 閱讀 8592

需要在mysql中插入2000萬條記錄,用insert語句插入速度很有限,每秒鐘幾百條,放在hadoop集群上跑也是這個速度,可能是資料庫的問題了,網上看到sql server和oracle的insert速度也不是很快。比較簡單的優化方法如下:

1、在一條insert語句中插入多條記錄

insert into tablename (field0, field1, ...) values

(value0, value1, ...),

(value0, value1, ...),

(value0, value1, ...),

...(value0, value1, ...)

這樣插入速度可以提高很多倍,但還是不夠塊,對於2000萬條記錄,每秒鐘一兩千條的插入速度還是太慢。

2、從文字檔案匯入資料

mysql可以從文字檔案直接匯入記錄,不過需要文字檔案是行記錄,並且每個字段之間用相同的字元隔開、每行之間也用相同的字元隔開。

mysql> load data local infile 'filename' into table 'tablename' fields terminated by '\t' lines terminated by '\n';

其中'\t'和'\n'分別是字段和行的分隔符,在不同的情況下可能不一樣。

用這種方式,感覺匯入的速度主要和檔案的大小有關,和記錄的條數關係不太(可能是2000萬的記錄還不夠多吧。。)

匯入乙個800mb的文字檔案(2000萬行),在單機上預處理用了3分鐘,匯入資料庫用了7分鐘(機器配置是i5-2400cpu、8gb記憶體、硬碟讀取速度大約90mb/s)

下面還要處理乙個11gb的文字檔案,這回估計要用集群跑了。

提高MySQL插入記錄的速度

在myisam engine下 1.盡量使用insert into table name values 這樣形式插入資料,避免使用inset into table name values inset into table name values inset into table name value...

mysql技巧 提高插入資料 新增記錄 的速度

問題描述 普通台式電腦,採集資料,1000萬資料量。採集回來的資料插入表中的時候很慢,每條約100毫秒。解決方法 1 加大mysql配置中的bulk insert buffer size,這個引數預設為8m bulk insert程式設計客棧 buf 2 改寫所有insert語句為insert de...

提高mysql資料查詢速度

1,建立索引 2,盡量避免在 where 子句中使用 或 操作符,否則將引擎放棄使用索引而進行全表掃瞄。3,盡量避免在 where 子句中使用 or 來連線條件,否則將導致引擎放棄使用索引而進行全表掃瞄,如 select id from t where num 10 or num 20 可以這樣查詢...