首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

MySQL 資料庫快速匯入資料:SQL 腳本批次載入技巧

     編輯:PHP 相關知識

告別手動輸入:使用 Dump 檔案批次載入資料的高效方法

MySQL 命令列互動模式下逐筆輸入 INSERT 語句極易出錯且效率低落。本文示範如何將結構定義與資料準備為 SQL 腳本檔案,透過重導向一次性匯入資料庫。

建立資料庫與資料表結構

# DOS 環境下建立資料庫
mysqladmin -u root create mydb

# 進入 MySQL 客戶端
mysql -u root
use mydb;

準備 SQL 匯入腳本 (mydb.dump)

使用文字編輯器建立檔案,確保每個 INSERT 語句獨佔一行:

CREATE TABLE employees (
    id tinyint(4) DEFAULT 0 NOT NULL AUTO_INCREMENT,
    first varchar(20),
    last varchar(20),
    address varchar(255),
    position varchar(50),
    PRIMARY KEY (id),
    UNIQUE id (id)
);

INSERT INTO employees VALUES (1, 'Bob', 'Smith', '128 Here St', 'Cityname', 'Marketing Manager');
INSERT INTO employees VALUES (2, 'John', 'Roberts', '45 There St', 'Townville', 'Telephonist');
INSERT INTO employees VALUES (3, 'Brad', 'Johnson', '1/34 Nowhere Blvd', 'Snowston', 'Doorman');

一鍵匯入執行

# 命令列執行 (非 MySQL 客戶端內部)
mysql -u root mydb < mydb.dump

參數說明:

  • -u root:指定 root 使用者
  • mydb:目標資料庫名稱
  • < mydb.dump:Shell 重導向,將檔案內容作為標準輸入傳給 mysql 客戶端

優勢與適用場景

方式優點缺點
互動式輸入即時回饋、適合少量測試易出錯、無法版控、重複性差
SQL 腳本匯入可版控、可重複執行、支援版本管理、適合部署自動化需預先準備檔案
GUI 工具匯入視覺化、支援多格式 (CSV/Excel)難以自動化、大檔案易超時

進階技巧:分離結構與資料

# 僅匯出結構 (無資料)
mysqldump -u root -p --no-data mydb > structure.sql

# 僅匯出資料 (無結構)
mysqldump -u root -p --no-create-info mydb > data.sql

# 完整備份 (結構+資料+觸發器/存儲過程)
mysqldump -u root -p --routines --triggers mydb > full_backup.sql

錯誤處理與驗證

  • 匯入報錯時,檢查 SQL 語法、字元編碼 (建議 UTF-8)、外鍵順序
  • 大檔案匯入優化:SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0; 於腳本開頭,結尾恢復並 COMMIT;
  • 驗證匯入結果:SELECT COUNT(*) FROM employees; 對比預期筆數
現代補充:生產環境資料遷移建議使用 pt-online-schema-change (Percona Toolkit) 或 gh-ost 實現零停機結構變更與大量資料導入。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved