在開發與測試環境中,快速生成大量測試數據是常見需求。本文提供一個簡單高效的 Bash 腳本,實現向 MySQL 批量插入數據,並說明建表與執行方式。
先在目標資料庫建立表結構,範例如下:
CREATE TABLE afs_test (
name VARCHAR(32),
age INT,
createTime DATETIME
);
新建檔案 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
賦予執行權限並插入 10 萬筆資料:
chmod +x batch_insert.sh ./batch_insert.sh 100000
sleep 0.05 避免過於頻繁請求造成資料庫負載過高。若需插入百萬級以上資料,建議改用以下方式:
INSERT INTO ... VALUES (...), (...), ...LOAD DATA INFILE 導入 CSV 檔案此腳本適合快速生成測試數據、驗證業務邏輯或壓力測試前的資料準備。