這時用MySQL的原生工具就能很好地解決這些問題了。
例
總記錄數: 1016126, 每行平均大小 46822
假設我們要對一個名為blog的數據庫進行導出和導入的操作
導出:
mysqldump -u數據庫用戶名 -p密碼 blog > 路徑/導出名.sql
代碼如下 復制代碼方法: mysqldump -t -n --default-character-set=latin1 test yejr > /backup/yejr.sql
耗時: 2124 sec
具體的操作是這樣的,打開命令提示符(這裡都以Windows系統為例),進入mysql安裝所在目錄中的bin文件夾(因為我的mysql沒有安裝為本地服務,所以要進行這一步),最後輸入運行上面的那條命令即可。
導入:
mysql -u數據庫用戶名 -p密碼 blog < 路徑/數據庫名.sql
代碼如下 復制代碼方法: mysql test < /backup/yejr.sql
上面的方法感覺在性能上還是可以優化的,後來我們再嘗試一下利用outfile
導出成文本
代碼如下 復制代碼方法: SELECT * INTO OUTFILE '/backup/yejr.txt' FROM yejr;
耗時: 3252.15 秒
操作如上,用命令提示符進入bin文件夾後,輸入運行該命令即可。
結論:
1. 用 load data 是較快的方法
2. 大數據量情況下, 最好是創建好表之後, 同時也要創建好相關的索引. 雖然說沒有索引時導入更快, 但是數據導入完成之後再創建索引總共的耗時比事先創建好了再導入要來的多多了.