前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL快速导入千万条数据(2)

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

原创
作者头像
雪人
发布2022-10-13 09:38:12
1.6K0
发布2022-10-13 09:38:12
举报
文章被收录于专栏:DataOps

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

一、导入前1000万条数据

清库、建库、新建表结构、导入前1000万条数据,结果:

■ 1000万行,有2索引导入耗时:16分钟

代码语言:txt
复制
Query OK, 9999966 rows affected, 5920 warnings (16 min 12.95 sec)
Records: 9999966  Deleted: 0  Skipped: 0  Warnings: 5920

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

二、导入前2000万条数据

清库、建库、新建表结构、导入前2000万条数据,结果:

■ 2000万行,无 索引导入耗时:45分钟

代码语言:txt
复制
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_

得到两个文件:

代码语言:txt
复制
mysql_ab_aa 600万行
mysql_ab_ab 4579017行

插入mysql_ab_aa:耗时15分钟

代码语言:txt
复制
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分钟

代码语言:txt
复制
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分钟

代码语言:txt
复制
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物理机做一个验证测试。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、导入前1000万条数据
  • 二、导入前2000万条数据
  • 三、导入后面的1000万条数据
  • 四、建索引
  • 五、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档