1. 准备数据文件
检查文件格式和结构:
- 确保数据文件(如
CSV
,TXT
,SQL
)的格式与目标数据库表的列结构相匹配。 - 文件应使用与数据库相同的字符编码,通常是
UTF-8
。 - 检查并清除文件中的多余空格、换行符等。
- 确保数据文件(如
统计文件行数:
- 在
Linux
或Unix-like
系统中,使用wc -l /path/to/your/data.csv
来计算文件中的行数。 - 在
Windows
系统中,可以在命令提示符或PowerShell
中使用Get-Content /path/to/your/data.csv | Measure-Object -Line
。 - 这可以帮助估计导入时间和调整数据库性能设置。
- 在
- 示例文件路径:
/path/to/your/data.csv
2. 优化MySQL设置
减少事务日志写入频率:
-- 减少事务日志的写入频率,提高导入速度,但可能会降低数据安全性 SET GLOBAL innodb_flush_log_at_trx_commit = 0;
禁用二进制日志同步:
-- 禁用二进制日志同步,提高性能,但在崩溃时可能会丢失数据 SET GLOBAL sync_binlog = 0;
增加InnoDB缓冲池大小:
-- 增加InnoDB缓冲池大小,以适应数据导入的需要(根据服务器内存调整) SET GLOBAL innodb_buffer_pool_size = '1G';
3. 使用LOAD DATA INFILE
语句导入数据
执行导入:
-- 导入数据 LOAD DATA INFILE '/path/to/your/data.csv' INTO TABLE your_table FIELDS TERMINATED BY ',' -- 字段分隔符 ENCLOSED BY '"' -- 文本包围符 LINES TERMINATED BY '\n' -- 行分隔符 IGNORE 1 LINES; -- 如果文件包含头部标题行,则忽略
- 调整命令:根据你的文件路径、表名和文件格式进行调整。
4. 数据后处理
检查数据完整性:
-- 检查数据行数是否正确 SELECT COUNT(*) FROM your_table; -- 检查是否有明显的数据错误(如NULL值、格式错误等) SELECT * FROM your_table WHERE some_column IS NULL;
5. 恢复MySQL设置
恢复设置:
-- 恢复事务日志的写入频率 SET GLOBAL innodb_flush_log_at_trx_commit = 1; -- 恢复二进制日志同步 SET GLOBAL sync_binlog = 1;
注意事项
- 数据备份:在进行大规模数据操作之前,务必备份好相关数据。
- 权限问题:确保MySQL服务对数据文件有读取权限。
- 安全性:临时调整的MySQL配置可能会影响数据库的稳定性和数据的完整性,在导入结束后应立即恢复。
- 性能监控:在导入过程中监控服务器性能,确保资源不会被过度消耗。