1 XXX.cvs 太大
使用cvs拆分HugeCSVSplitter_jb51工具进行拆分,Line Count 设置为1,000,000
注意:1 拆分后除第一个子cvs文件含有标题外,其他的子文档都不含有标题行;
2 后一个文档的第一行为前一个文档的最后一行,所以需要删除掉;
2 使用Excel导入
1 打开Excel;
2 数据->自文本
3 选择简体中文(GB2312)
4 分隔符选择
5 设置列数据格式,如果超长数字串不设置,导入到Excel中使用的是科学计数法。
3 使用Excel另存为cvs文档;
保存前,先检查下标题是否存在;然后再删掉第一行;删除原因,在上一个文档中存在;如果不存在,则不需要删除。
4 使用“记事本”另存为,修改编码格式
5 使用 LOAD DATA INFILE 命令导入到数据库中;使用Navicat导入向导1百万需要20多分钟
1 打开cmd;
2 mysql -uroot -p 登录上mysql;
3 切换到相应的数据库中;
use 数据库
4 执行导入
LOAD DATA INFILE 'C:/Users/XXXXX/Downloads/test/XXXXXX_20230425_16.CSV' INTO TABLE 表名 FIELDS TERMINATED BY ',' ignore 1 lines;
#ENCLOSED BY '"' cvs中包含“"”,则导入失败处理下;
LOAD DATA INFILE 'C:/Users/XXXXX/Downloads/test/XXXX_20240419_0.CSV' INTO TABLE 表名 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' ignore 1 lines;
注意:1 导入的目标表中的数据越多,导入速度越慢,尽量控制在1千万之内;
2 导入的cvs字段与数据表的字段必须一一对应;
3 cvs文件中不能包含“"”字符串
6 使用 命令SELECT * FROM information_schema.INNODB_TRX; 查看导入进度
trx_weight 可以当做是当前的导入进度
导入不成功会整体Roll Back,所以导入前一定要确保数据的正确性。