2021-06-22 11:04:06
命令行工具:
MySQL的mysql客户端、PostgreSQL的psql可执行SQL脚本,适合小批量数据。
操作方式:将数据转拆御换为INSERT语句后通过工具执行。
图形化界面工具:
Navicat、Dbeaver、SQL Developer等工具提供数据导入向导。
支持旅模岩CSV、Excel等多种文件格式,操作直观。

编程语言:
Python的pandas库、Java的JDBC可连接数据库并批量插入数据。
优势:支持复杂数据转换和清洗,灵活性高。
数据库自带工具:
MySQL的LOAD DATA INFILE和PostgreSQL的COPY命令专为高性能导入设计。
索引:导入前删除索引,完成后重建。
事务:将多条INSERT语句合并为一个事务批量提交。
数据量:分批导入或使用高效工具(如LOAD DATA INFILE)。
硬件:升级硬盘I/O或CPU性能。
网络:将远程数据文件复制到本地后再导入。
确认编码:用文本编辑器查看CSV文件的编码(如UTF-8、GBK)。
匹配数据库编码:创建表或连接数据库时指定相同编码。
导入时指定编码:-- MySQL示例LOAD DATA INFILE 'file.csv' INTO TABLE table_name CHARACTER SET utf8mb4;
转换编码:用工具将CSV文件转换为数据库兼容的编码。
事务控制:导入操作放在事务中,出错时回滚。
错误日志:记录错误信息到文件或控制台。
数据校验:导入前检查数据类型、长度码搏和格式。
错误分类处理:
数据类型不匹配:尝试转换类型。
唯一约束冲突:跳过记录或更新已有数据。
重试机制:对网络超时等可恢复错误设置重试。
优化方法:
批量插入:减少单条插入的交互次数。
禁用索引和约束:导入前禁用,完成后重建。
调整参数:优化数据库缓冲区、日志大小等。
并行导入:分割数据后多线程并行导入。
专用工具:优先使用LOAD DATA INFILE或COPY命令。
硬件升级:改善硬盘I/O和CPU性能。
