写一个多线程写数据库的shell脚本
实现一个多线程写数据库的shell脚本可以使用bash shell中的&符号来创建并行进程。下面是一个示例脚本,用于同时向数据库中插入多个数据。
#!/bin/bash
# 数据库连接信息
DB_HOST="localhost"
DB_USER="username"
DB_PASSWORD="password"
DB_NAME="database"
# 并行进程数
NUM_THREADS=4
# 数据列表
DATA_LIST=(
"data1"
"data2"
"data3"
"data4"
"data5"
)
# 多线程函数
function insert_data() {
# 循环插入数据
for data in "${@}"; do
# 执行数据库插入语句
mysql -h"$DB_HOST" -u"$DB_USER" -p"$DB_PASSWORD" -D "$DB_NAME" -e "INSERT INTO table_name(data) VALUES ('$data');"
done
}
# 计算每个线程需要处理的数据量
total_data=${#DATA_LIST[@]}
data_per_thread=$((total_data / NUM_THREADS))
# 创建并行进程
for ((i=0; i<NUM_THREADS; i++)); do
# 计算当前线程需要处理的数据索引范围
start_index=$((i * data_per_thread))
end_index=$((start_index + data_per_thread))
# 提取当前线程需要处理的数据
thread_data=("${DATA_LIST[@]:$start_index:$end_index}")
# 调用多线程函数,并传入当前线程需要处理的数据
insert_data "${thread_data[@]}" &
done
# 等待所有并行进程执行完毕
wait
# 输出完成信息
echo "数据插入完成。"
请注意,上述脚本中的DB_HOST、DB_USER、DB_PASSWORD和DB_NAME变量需要根据实际情况进行修改,以便与数据库连接信息匹配。另外,DATA_LIST变量中的数据列表可以根据实际需求进行修改
原文地址: https://www.cveoy.top/t/topic/hBiT 著作权归作者所有。请勿转载和采集!