前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >关于mysql导入大文本txt文件

关于mysql导入大文本txt文件

作者头像
仙士可
发布2021-06-24 15:29:22
发布2021-06-24 15:29:22
3.9K00
代码可运行
举报
文章被收录于专栏:仙士可博客仙士可博客
运行总次数:0
代码可运行

前几天在偶然的情况下,获得了一个18G的txt文件,现在需要导入到数据库中,那么该怎么导入才能保证高效并且稳定呢?

mysql插入效率

首先应该知道的就是mysql的插入效率跟下面几个点有关

1:mysql数据库引擎,myisam,innodb,甚至是memory的插入效率都是不一样

2:索引,索引也会导致插入效率变慢

3:唯一索引冲突,在插入mysql数据库时,如果有相同数据,将会报错,降低插入效率

4:mysql硬盘,机械硬盘跟固态硬盘的插入效率也是不一样的

5:导入方法,单线程多线程等

6:mysql配置项,各种缓存区大小配置,索引查询配置等.

我们通过一个个点进行比对,找出最优的方案.

数据库引擎

我们先测试下myisam 和innodb的插入效率对比,至于memory就不测试了.没有必要.

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TABLE `test_1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `phone` varchar(18) DEFAULT NULL,
  `uid` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `test_2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `phone` varchar(18) DEFAULT NULL,
  `uid` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

2者都通过 Navicat txt导入方式导入10万条数据:

可看到.在默认情况下innodb的插入时间为10.02秒,而myisam为5.93秒,所以默认情况下,innodb插入效率确实是比myisam慢的,那么有没有办法提高innodb速度呢?

提高innodb插入速度方法

注意,此方法只用于测试innodb极限插入速度,不建议在生产环境中使用.

首先,我们需要知道,innodb引擎的插入逻辑:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mysql插入效率
  • 数据库引擎
    • 提高innodb插入速度方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档