MySQL 快速匯入大量資料 資料收集

2022-06-07 22:33:07 字數 4033 閱讀 4962

一、load data infile

二、當資料量較大時,如上百萬甚至上千萬記錄時,向mysql資料庫中匯入資料通常是乙個比較費時的過程。通常可以採取以下方法來加速這一過程:

一、對於myisam型別的表,可以通過以下方式快速的匯入大量的資料。alter table tblname disable keys; loading the data alter table tblname enable keys; 這兩個命令用來開啟或者關閉myisam表非唯一索引的更新。在匯入大量的資料到乙個非空的myisam表時,通過設定這兩個命令,可以提高匯入的效率。對於匯入大量資料到乙個空的myisam表,預設就是先導入資料然後才建立索引的,所以不用進行設定。

二、對於innodb型別的表,有以下幾種方式可以提高匯入的效率:①因為innodb型別的表是按照主鍵的順序儲存的,所以將匯入的資料按照主鍵的順序排列,可以有效的提高匯入資料的效率。如果innodb表沒有主鍵,那麼系統會預設建立乙個內部列作為主鍵,所以如果可以給表建立乙個主鍵,將可以利用這個優勢提高匯入資料的效率。

②在匯入資料前執行set unique_checks=0,關閉唯一性校驗,在匯入結束後執行set unique_checks=1,恢復唯一性校驗,可以提高匯入的效率。

③如果應用使用自動提交的方式,建議在匯入前執行set autocommit=0,關閉自動提交,匯入結束後再執行set autocommit=1,開啟自動提交,也可以提高匯入的效率。

三、如何提高mysql load data infile的速度測試資料2.5g,共有資料9427567條。用的mysql的large伺服器的配置。 load一次需要大概10分鐘左右。 建的錶用的是myisam,調整了幾個session的引數值

set session bulk_insert_buffer_size=256217728; set session myisam_sort_buffer_size=256217728;

執行結果如下

query ok, 9427567 rows affected, 1558 warnings (3 min 55.21 sec) records: 9427567 deleted: 0 skipped: 0 warnings: 0 google到的還可以

setg lobal key_buffer_size=256217728; alter table tablename disable keys;

如何load資料裡面帶反斜槓(backslash)」\」 的資料由於如果你沒有指定fields子句,則預設值為假設您寫下如下語句時的值: fields terminated by 『\t』 enclosed by 」 escaped by 『\\』 所以,如果你的資料裡面有反斜槓(backslash)」\」的時候,資料會出現被截斷的問題。出現這種問題,只要寫上如下的fields子句即可 fields terminated by 『\t』 enclosed by 」 escaped by 」

如何load不同編碼的資料原來用的4.x的mysql,我是select into outfile ,隻後用iconv,或者其他軟體來做。可以參考這裡,但是由於這次資料大,用ultraedit等軟體開啟都要半天。好在新版的mysql可以增加乙個新的引數 character set gbk 我的文字資料是gbk的編碼,資料表是utf8的,用這種方法測試成功。如何load的時候只insert特定的列比如表裡面有比元資料多的列。可以在load的時候指定要插入的欄位名字。

示例的**如下:

load data infile '~/data.txt'into table fb0505character setgbkfields terminated by '\t' enclosed by '' escaped by '' lines terminated by '\n' starting by ''(seller_id,fb_type,fb_date,item_url);

其中表fb0505裡面還有一列是id。

一、load data infile

二、當資料量較大時,如上百萬甚至上千萬記錄時,向mysql資料庫中匯入資料通常是乙個比較費時的過程。通常可以採取以下方法來加速這一過程:

一、對於myisam型別的表,可以通過以下方式快速的匯入大量的資料。alter table tblname disable keys; loading the data alter table tblname enable keys; 這兩個命令用來開啟或者關閉myisam表非唯一索引的更新。在匯入大量的資料到乙個非空的myisam表時,通過設定這兩個命令,可以提高匯入的效率。對於匯入大量資料到乙個空的myisam表,預設就是先導入資料然後才建立索引的,所以不用進行設定。

二、對於innodb型別的表,有以下幾種方式可以提高匯入的效率:①因為innodb型別的表是按照主鍵的順序儲存的,所以將匯入的資料按照主鍵的順序排列,可以有效的提高匯入資料的效率。如果innodb表沒有主鍵,那麼系統會預設建立乙個內部列作為主鍵,所以如果可以給表建立乙個主鍵,將可以利用這個優勢提高匯入資料的效率。

②在匯入資料前執行set unique_checks=0,關閉唯一性校驗,在匯入結束後執行set unique_checks=1,恢復唯一性校驗,可以提高匯入的效率。

③如果應用使用自動提交的方式,建議在匯入前執行set autocommit=0,關閉自動提交,匯入結束後再執行set autocommit=1,開啟自動提交,也可以提高匯入的效率。

三、如何提高mysql load data infile的速度測試資料2.5g,共有資料9427567條。用的mysql的large伺服器的配置。 load一次需要大概10分鐘左右。 建的錶用的是myisam,調整了幾個session的引數值

set session bulk_insert_buffer_size=256217728; set session myisam_sort_buffer_size=256217728;

執行結果如下

query ok, 9427567 rows affected, 1558 warnings (3 min 55.21 sec) records: 9427567 deleted: 0 skipped: 0 warnings: 0 google到的還可以

setg lobal key_buffer_size=256217728; alter table tablename disable keys;

如何load資料裡面帶反斜槓(backslash)」\」 的資料由於如果你沒有指定fields子句,則預設值為假設您寫下如下語句時的值: fields terminated by 『\t』 enclosed by 」 escaped by 『\\』 所以,如果你的資料裡面有反斜槓(backslash)」\」的時候,資料會出現被截斷的問題。出現這種問題,只要寫上如下的fields子句即可 fields terminated by 『\t』 enclosed by 」 escaped by 」

如何load不同編碼的資料原來用的4.x的mysql,我是select into outfile ,隻後用iconv,或者其他軟體來做。可以參考這裡,但是由於這次資料大,用ultraedit等軟體開啟都要半天。好在新版的mysql可以增加乙個新的引數 character set gbk 我的文字資料是gbk的編碼,資料表是utf8的,用這種方法測試成功。如何load的時候只insert特定的列比如表裡面有比元資料多的列。可以在load的時候指定要插入的欄位名字。

示例的**如下:

load data infile '~/data.txt'into table fb0505character setgbkfields terminated by '\t' enclosed by '' escaped by '' lines terminated by '\n' starting by ''(seller_id,fb_type,fb_date,item_url);

其中表fb0505裡面還有一列是id。

MySQL 快速匯入大量資料 資料收集

一 load data infile 二 當資料量較大時,如上百萬甚至上千萬記錄時,向mysql資料庫中匯入資料通常是乙個比較費時的過程。通常可以採取以下方法來加速這一過程 一 對於myisam型別的表,可以通過以下方式快速的匯入大量的資料。alter table tblname disable k...

Mysql大量資料快速匯入匯出

一般的資料備份用 mysql路徑 bin mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 資料還原是 到mysql命令列下面,用 source 檔名 的方法。但是這種方法對大資料量的表進行操作就非常慢。因為他不僅匯出了資料還匯出了表結構。在針對大資料量的表時,我們可以用infile和 ...

mysql 快速匯出 Mysql 大量資料快速匯出

mysqldump u root p q e t webgps4 dn location2 dn location2.sql mysqldump u root p q e t single transaction webgps4 dn location2 dn location2.sql sourc...