首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 批量插入數據 Shell 腳本實戰指南

     編輯:MySQL 綜合教學

MySQL 批量插入數據 Shell 腳本實戰指南

在開發與測試環境中,快速生成大量測試數據是常見需求。本文提供一個簡單高效的 Bash 腳本,實現向 MySQL 批量插入數據,並說明建表與執行方式。

1. 建立測試表

先在目標資料庫建立表結構,範例如下:

CREATE TABLE afs_test (
    name VARCHAR(32),
    age INT,
    createTime DATETIME
);

2. 批量插入腳本

新建檔案 batch_insert.sh,內容如下:

#!/bin/bash
# 使用方式:./batch_insert.sh 100000
# 參數 $1 為要插入的行數

MAX_INSERT_ROW_COUNT=$1
i=1

while [ $i -le $MAX_INSERT_ROW_COUNT ]; do
    mysql -uroot -proot dbname -e "INSERT INTO tablename (name, age, createTime) VALUES ('HELLO$i', $i % 99, NOW());"
    d=$(date '+%m-%d %H:%M:%S')
    echo "INSERT HELLO $i @@ $d"
    i=$((i + 1))
    sleep 0.05
done

exit 0

3. 執行範例

賦予執行權限並插入 10 萬筆資料:

chmod +x batch_insert.sh
./batch_insert.sh 100000

4. 腳本解析

  • 參數化行數:透過 $1 接收外部傳入的插入總量,靈活控制。
  • 迴圈插入:使用 while 迴圈逐筆執行 INSERT,適合中小量級資料。
  • 時間戳記錄:每次插入後印出時間,便於觀察進度與效能。
  • 間隔休眠:sleep 0.05 避免過於頻繁請求造成資料庫負載過高。

5. 效能優化建議

若需插入百萬級以上資料,建議改用以下方式:

  • 單條 SQL 多值插入:INSERT INTO ... VALUES (...), (...), ...
  • 使用 LOAD DATA INFILE 導入 CSV 檔案
  • 關閉自動提交,手動控制事務批次提交

此腳本適合快速生成測試數據、驗證業務邏輯或壓力測試前的資料準備。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved