| 方式 | 命令 | 耗時 | 備註 |
|---|---|---|---|
| SELECT INTO OUTFILE | SELECT * INTO OUTFILE '/backup/yejr.txt' FROM yejr; | 3,252 秒 | 純文字,無結構定義 |
| mysqldump | mysqldump -t -n --default-character-set=latin1 test yejr > /backup/yejr.sql | 2,124 秒 | 含 INSERT 語句,**較快** |
結論:mysqldump 導出速度更快,且輸出可直接執行還原。
| 方式 | 命令 | 耗時 | 備註 |
|---|---|---|---|
| LOAD DATA (txt) | mysql test < /backup/yejr.txt | 3,318 秒 | **最快** |
| mysql 執行 sql | mysql test < /backup/yejr.sql | 4,707 秒 | 解析 SQL 開銷大 |
結論:LOAD DATA 導入最快,mysqldump + mysql 組合次之。
-- 導入前
ALTER TABLE yejr DISABLE KEYS;
-- 導入資料
LOAD DATA INFILE 'yejr.txt' INTO TABLE yejr;
-- 導入後
ALTER TABLE yejr ENABLE KEYS;
DISABLE KEYS 停止非唯一索引更新,僅寫資料頁。ENABLE KEYS 以排序方式批次重建索引,比逐筆插入 B-Tree 快數倍。DISABLE KEYS,但可按主鍵順序排序資料檔案導入,減少頁分裂。innodb_buffer_pool_size、innodb_log_file_size、innodb_flush_log_at_trx_commit=2 (導入期間)。LOAD DATA 而非 INSERT,減少語句解析與事務開銷。ALTER TABLE ... DISABLE KEYS。mysqldump -t --no-create-info 導出純資料,或 SELECT INTO OUTFILE 導出文字。LOAD DATA (本地) 或 mysqlimport 導入。ALTER TABLE ... ENABLE KEYS;InnoDB:無需額外步驟。ANALYZE TABLE 更新統計資訊。