Mysql大量數據快速導入導出

一般的數據備份用 :mysql路徑+bin/mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名 

數據還原是:到mysql命令行下面,用:source   文件名;的方法。

但是這種方法對大數據量的表進行操作就非常慢。因爲他不僅導出了數據還導出了表結構。

在針對大數據量的表時,我們可以用infile和 outfile來操作。

outfile導出數據庫數據的用法:


下圖我們可以看到6百多萬數據35秒就搞定了:


下面我們看看infile的語法:


在infile導入數據的時候,我們還可以做一些優化。我們可以用 

alter table table_name disable keys   關閉普通索引。等數據導入玩,再用:

alter table table_name enable keys    來開啓普通索引。這樣就不會邊導入數據,邊整理索引的二叉樹兒影響導數據的效率。

如果可以保證 數據的正確性,我們可以將表的唯一索引也關閉,之後再開啓,不是每條數據就算是唯一的他都要去檢測一遍。命令:

 set unique_checks=0; #關閉唯一校驗

 set unique_checks=1;#開啓唯一校驗

如果是InnoDB存儲引擎,我們還可以set auto commit=0;關閉自動提交,來提高效率。InnoDB是按主鍵的順序保存的,我們將其主鍵順序排列也可以提高效率。


下面我們對myisam引擎的表做個測試,我們先不關索引,導入數據(用了近4分鐘):



然後我們先把索引關閉試試(只用了一分鐘多一點,快了不少啊!摸摸大!):









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章