关于mysql导入大文本txt文件
【摘要】 前几天在偶然的情况下,获得了一个18G的txt文件,现在需要导入到数据库中,那么该怎么导入才能保证高效并且稳定呢?mysql插入效率首先应该知道的就是mysql的插入效率跟下面几个点有关1:mysql数据库引擎,myisam,innodb,甚至是memory的插入效率都是不一样2:索引,索引也会导致插入效率变慢3:唯一索引冲突,在插入mysql数据库时,如果有相同数据,将会报错,降低插入效率...
前几天在偶然的情况下,获得了一个18G的txt文件,现在需要导入到数据库中,那么该怎么导入才能保证高效并且稳定呢?
mysql插入效率
首先应该知道的就是mysql的插入效率跟下面几个点有关
1:mysql数据库引擎,myisam,innodb,甚至是memory的插入效率都是不一样
2:索引,索引也会导致插入效率变慢
3:唯一索引冲突,在插入mysql数据库时,如果有相同数据,将会报错,降低插入效率
4:mysql硬盘,机械硬盘跟固态硬盘的插入效率也是不一样的
5:导入方法,单线程多线程等
6:mysql配置项,各种缓存区大小配置,索引查询配置等.
我们通过一个个点进行比对,找出最优的方案.
数据库引擎
我们先测试下myisam 和innodb的插入效率对比,至于memory就不测试了.没有必要.
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插入速度方法
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)