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

MySQL 數據導入利器 mysqlimport 完全指南

     編輯:MySQL 資料庫相關知識

mysqlimport 核心優勢

mysqlimport 是 MySQL 官方提供的命令行批量導入工具,基於 LOAD DATA INFILE 實現,比 INSERT 快 10-20 倍,適合百萬級以上數據初始化。

基本語法

mysqlimport [options] database_name textfile1 [textfile2 ...]
  • 表名 = 文件名第一個點之前的部分(如 Customers.txt → 表 Customers)
  • 文件格式必須與表結構完全一致

常用選項速查表

選項短功能
--delete-d導入前清空表
--force-f忽略錯誤繼續執行
--ignore-i跳過唯一鍵衝突行(保留舊數據)
--replace-r唯一鍵衝突時替換舊行(用新數據)
--lock-tables-l導入前鎖表,防止併發讀寫干擾
--fields-terminated-by=,指定字段分隔符(默認 Tab)
--fields-enclosed-by=\"指定字段包裹字符(默認無)
--lines-terminated-by=\n指定行結束符(默認 \n)
--password-p提示輸入密碼
--verbose-v顯示詳細進度

實戰示例:導入 CSV 文件

文件 Orders.txt 內容:

"1", "ORD89876", "1 Dozen Roses", "19991226"
"2", "ORD89877", "2 Dozen Tulips", "19991227"

執行命令:

mysqlimport --password --replace --lock-tables \
  --fields-enclosed-by=" --fields-terminated-by=, \
  Meet_A_Geek Orders.txt

解析:
--replace 更新已有訂單;
--lock-tables 保證一致性;
雙引號包裹、逗號分隔完全匹配 CSV 格式。

避坑指南

  • 文件編碼必須與數據庫字符集一致(建議 UTF-8)
  • 日期/時間格式需符合 MySQL 標準(YYYY-MM-DD HH:MM:SS)
  • 自增主鍵列在文件中可留空或用 \N 表示 NULL
  • 大文件建議分割(split -l 100000 big.txt part_)並行導入

對比:mysqlimport vs LOAD DATA INFILE

  • mysqlimport 是命令行封裝,適合腳本自動化、定時任務
  • LOAD DATA INFILE 可在 SQL 會話中執行,支持更多選項(如 IGNORE n LINES 跳過表頭)
  • 核心引擎相同,性能無差異
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved