mysql load data file 批量导入数据
mysql 大量数据导入记录
工作需要将大量数据导入到mysql中,但是数据量很大且几十个文本数据,每次导入的数据量有限制,所以需要分批导入。为了快速导入记录下使用 load data infile 方式。
1. SQL入数据语句
先将数据传入 /var/lib/mysql/test/路径
mysql> load data infile "/var/lib/mysql/test/2024-07-27000009.txt"
-> into table table_product_map_temp
-> fields terminated by '|' (`product_name`,`product_id`)
-> lines terminated by '\n';
到这里sql单个数据导入实现了,但是数据量很大,所以需要批量导入,这里使用脚本实现。
2. 批量导入数据
# 文件列表
files="/var/lib/mysql/test/2024-07-27000009.txt \
/var/lib/mysql/test/2024-07-27000010.txt "
# MySQL 用户名和密码
username="root"
read -s password
# 循环加载每个文件
for file in $files; do
echo "Loading data from $file..."
mysql -u $username -p$password -e "USE newproducts; LOAD DATA INFILE '$file' INTO TABLE table_product_map_temp fields terminated by '|' (`huawei_oaid`,`honor_oaid`) lines terminated by '\n'; "
done
再执行sh insersql.sh脚本 按照提示输入密码就可以实现批量导入数据了。