一般的數據備份用 :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分鐘):
然後我們先把索引關閉試試(只用了一分鐘多一點,快了不少啊!摸摸大!):