开发者社区 > 博文 > 200M的sql文件为何导入花费48分钟?
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

200M的sql文件为何导入花费48分钟?

  • 京东云技术交付部
  • 2021-01-27
  • IP归属:未知
  • 28160浏览

有客户咨询,在阿里云rds导出的sql文本,导入京东云rds时候特别慢,花费48分钟才导入,而备份文件仅仅200M左右。


查询用户sql文件,部分内容如下:
CREATE TABLE `digipub_boot_path` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '
自增主键',
  `cn_name` varchar(16) NOT NULL COMMENT '
汉字描述',
  `page_no` varchar(8) NOT NULL COMMENT '
跳转目标代码',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='
开机启动跳转到指定页面';

-- ----------------------------
-- Records of digipub_boot_path
-- ----------------------------
INSERT INTO digipub_boot_path VALUES ('1', '
登录/注册', 'A0');
INSERT INTO digipub_boot_path VALUES ('2', '
今日头版', 'A1');
INSERT INTO digipub_boot_path VALUES ('3', '
版面导航', 'A2');
INSERT INTO digipub_boot_path VALUES ('4', '
往期回顾', 'A3');
INSERT INTO digipub_boot_path VALUES ('5', '
购买订阅', 'A4');

。。。。。。

这里发现两个问题:

·       表是myisam,而不是innodb,使用的是表锁。

·       导出的insert语句估计使用了--skip-extended-insert参数,每个记录一条insert,如果不带此参数,默认应该是insert into  tabname1),(2),(3)。。。这样的语句。


由于myisam没有事务,无法象innodb那样批量commit,而且导出的记录又是一条一个语句,无法批量执行。

因此每次insert都需要网络数据库交互一次,效率极低,改为正常导出后再测试,30s左右导入。


感谢各位童鞋阅读,如果能够对大家有所帮助,欢迎点赞转发评论。

关注我们的公众号:云服务飞行团,更多内容持续放送!

扫码关注公众号哦~
更多内容敬请期待


共0条评论