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脚本 按照提示输入密码就可以实现批量导入数据了。

posted @ 2024-08-10 21:43  探出的头  阅读(152)  评论(0编辑  收藏  举报