愿你出走半生,归来仍是少年

Kratos
专注于用户阅读体验的响应式博客主题
  1. 首页
  2. MySQL
  3. 正文

MySQL快速导入千万条数据(2)

2022年2月26日 3083点热度 2人点赞 0条评论

接上文,继续测试3000万条记录快速导入数据库。

Table of Contents

Toggle
  • 一、导入前1000万条数据
  • 二、导入前2000万条数据
  • 三、导入后面的1000万条数据
  • 四、建索引
  • 五、总结

一、导入前1000万条数据

清库、建库、新建表结构、导入前1000万条数据,结果:
■ 1000万行,有2索引导入耗时:16分钟

Query OK, 9999966 rows affected, 5920 warnings (16 min 12.95 sec)
Records: 9999966  Deleted: 0  Skipped: 0  Warnings: 5920

可见,导入千万条数据,性能下降明显。

二、导入前2000万条数据

清库、建库、新建表结构、导入前2000万条数据,结果:
■ 2000万行,无 索引导入耗时:45分钟

Query OK, 19999966 rows affected, 5920 warnings (45 min 2.05 sec)
Records: 19999966  Deleted: 0  Skipped: 0  Warnings: 5920

可见,导入更大量的数据,性能更是急剧下降,2000万条记录耗时长达45分钟!
由于是笔记本虚机,怀疑cpu性能、io性能、内存配置导致了这个结果。

三、导入后面的1000万条数据

由于一次导入千万条数据性能较低,因此决定把后面的1000万行,拆分为两部分,分两次导入,如下操作:
split -l 6000000 mysql_ab mysql_ab_
得到两个文件:

mysql_ab_aa 600万行
mysql_ab_ab 4579017行

插入mysql_ab_aa:耗时15分钟

LOAD DATA LOCAL INFILE '/root/mysql_ab_aa'
INTO TABLE tablename
FIELDS TERMINATED BY ', '
ENCLOSED BY "'"
LINES TERMINATED BY '\n';
Query OK, 6000000 rows affected (15 min 30.23 sec)
Records: 6000000  Deleted: 0  Skipped: 0  Warnings: 0

插入mysql_ab_ab:耗时8分钟

LOAD DATA LOCAL INFILE '/root/mysql_ab_ab'
INTO TABLE tablename
FIELDS TERMINATED BY ', '
ENCLOSED BY "'"
LINES TERMINATED BY '\n';
Query OK, 4579017 rows affected (7 min 51.05 sec)
Records: 4579017  Deleted: 0  Skipped: 0  Warnings: 0

四、建索引

再把对应的两个索引建上,每个索引耗时:3分钟

mysql> ALTER TABLE tablename ADD INDEX `master_id` (`master_id`);
Query OK, 0 rows affected (1 min 34.94 sec)
ALTER TABLE tablename ADD INDEX `code` (`code`);
Query OK, 0 rows affected (3 min 30.58 sec)

可见,3000万数据建普通索引,几分钟时间还是挺快的。

五、总结

纵观以上测试,导入3000万条数据耗时73分钟,如果将SQL文件拆分为单个文件500万条以内,可能会耗时更短,也许能控制在60分钟以内,如果电脑配置更高,则会更快。
后续继续在X86物理机做一个验证测试。

标签: 暂无
最后更新:2022年2月26日

liking

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2026 年 6 月
  • 2026 年 3 月
  • 2026 年 2 月
  • 2025 年 12 月
  • 2025 年 11 月
  • 2025 年 4 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 7 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 5 月
  • 2023 年 3 月
  • 2023 年 2 月
  • 2022 年 12 月
  • 2022 年 11 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 8 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 5 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2021 年 2 月
  • 2021 年 1 月
  • 2020 年 12 月
  • 2020 年 11 月
  • 2020 年 10 月
  • 2020 年 9 月
  • 2020 年 8 月
  • 2020 年 7 月
  • 2020 年 6 月
  • 2020 年 5 月
  • 2020 年 3 月
  • 2020 年 2 月
  • 2019 年 12 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 2 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 8 月
  • 2018 年 7 月
  • 2018 年 6 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 3 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 8 月
  • 2017 年 6 月
  • 2017 年 5 月
  • 2017 年 3 月
  • 2016 年 9 月
  • 2016 年 8 月
  • 2016 年 7 月
  • 2016 年 6 月
  • 2016 年 5 月
  • 2015 年 10 月
  • 2014 年 10 月
  • 2014 年 8 月
  • 2014 年 3 月
  • 2013 年 12 月
  • 2013 年 8 月
  • 2013 年 7 月
  • 2013 年 6 月
  • 2013 年 4 月
  • 2012 年 11 月
  • 2012 年 7 月
  • 2012 年 6 月
  • 2012 年 5 月
  • 2012 年 2 月
  • 2011 年 10 月
  • 2011 年 8 月
  • 2011 年 3 月
  • 2010 年 11 月
  • 2010 年 10 月
  • 2010 年 9 月
  • 2010 年 8 月
  • 2010 年 7 月
  • 2010 年 5 月
  • 2010 年 4 月
  • 2010 年 1 月
  • 2009 年 11 月
  • 2009 年 8 月
  • 2009 年 5 月
  • 2009 年 3 月
  • 2009 年 2 月
  • 2008 年 11 月
  • 2008 年 10 月
  • 2008 年 8 月
  • 2008 年 4 月
  • 2007 年 4 月

分类

  • BigData
  • kubernetes
  • linux
  • MongoDB
  • MySQL
  • Oracle
  • PostgreSQL
  • 备份恢复
  • 安装配置
  • 性能优化
  • 技术杂谈
  • 未分类
  • 梦回红楼
  • 测试
  • 生活点滴
  • 网站建设
  • 自制工具
  • 轻松一刻
  • 运维知识
  • 问题处理

COPYRIGHT © 2026 愿你出走半生,归来仍是少年. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang