一、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
fb0505
character
setgbk
fields
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...