首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

mysqldump 完整使用指南:備份、匯出、條件篩選與效能優化參數

     編輯:MySQL 資料庫相關知識

為什麼需要 mysqldump?

  • 備份:資料價值高,定期備份防災難。
  • 遷移/共享:跨環境部署、提供數據給夥伴。

mysqldump 將整個資料庫轉為單一純文字檔,包含重建資料庫所需的所有 DDL (CREATE) 與 DML (INSERT) 語句,可直接管線導入:mysql < dump.sql。

基本語法

mysqldump [選項] -u 用戶 -p 資料庫名 [表名...] > 輸出檔.sql

常用範例

需求指令
備份整庫 Meet_A_Geekmysqldump -p Meet_A_Geek > MeetAGeek_Dump.sql
僅備份 Orders 表mysqldump -p Meet_A_Geek Orders > Orders.sql
條件篩選:Order_ID > 2000mysqldump -p --where="Order_ID > 2000" Meet_A_Geek Orders > Special.sql
匯出供 Excel 用 CSV (無建表語句)mysqldump -p --where="Order_Date >='2000-01-01'" --tab=/home/mark --no-create-info --fields-terminated-by=, Meet_A_Geek Orders

核心參數詳細表

參數作用
--add-drop-table每表前加 DROP TABLE IF EXISTS,重複匯入不報錯
--add-locksINSERT 前後加 LOCK/UNLOCK TABLES,防併發干擾
-c, --complete-insertINSERT 含欄位名,跨庫遷移更安全
--delayed-insert使用 INSERT DELAYED 降低鎖爭用
-F, --flush-logs匯出前刷新二進制日誌
-f, --force遇錯誤繼續執行
--fullCREATE TABLE 含完整屬性
-l, --lock-tables匯出期間鎖定表 (MyISAM 必須)
-t, --no-create-info不輸出 CREATE TABLE,只匯出資料
-d, --no-data只輸出結構,不輸出資料
--opt開啟所有加速匯出/匯入的選項組合 (預設開啟)
-q, --quick不緩存全表結果,邊讀邊寫,低記憶體模式
-T, --tab=路徑產生兩檔:表.sql (DDL) + 表.txt (資料)
-w, --where="條件"依 WHERE 篩選匯出資料

進階技巧:SELECT INTO OUTFILE

若需更靈活格式 (如報表產生器),可直接在 SQL 中使用:

SELECT * INTO OUTFILE '/home/mark/Orders.txt'
FIELDS TERMINATED BY ',' 
FROM Orders 
WHERE Order_Date >= '2000-01-01';
  • 支援 JOIN 多表查詢匯出。
  • 可結合 UNION、CASE 產生複雜報表。
  • 需 FILE 權限,輸出目錄需 mysqld 進程寫入權限。

Schema 定義

Schema:以資料定義語言 (DDL) 表達的語句集合,完整描述資料庫結構。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved