首页 > 代码库 > mysql导入导出数据
mysql导入导出数据
大家都知道myisam读数据时比innodb要快,但导入大量表是myisam的记录特别慢,下面是我总结的mysql在导入导出大数据时加快速度的方法
一、使用into outfile导出、load data导入数据
1.导出大数据表(into outfile导出的数据是文本)mysql> select count(*) from app_china;+----------+| count(*) |+----------+| 17931 |+----------+1 row in set (0.00 sec)mysql> select * from app_china into outfile ‘./app.txt‘; #导出数据的文件放在数据目录Query OK, 17931 rows affected (0.02 sec)
2.导入大数据表导出的是文本数据,所以需要先创建表结构
mysql> CREATE TABLE `app_china` (-> `id` int(4) unsigned NOT NULL AUTO_INCREMENT,-> `name` varchar(60) NOT NULL DEFAULT ‘‘,-> `level` tinyint(3) unsigned DEFAULT NULL,-> `upid` int(4) unsigned DEFAULT NULL,-> `area_id` tinyint(3) unsigned NOT NULL DEFAULT ‘0‘ COMMENT ‘大区id‘,-> `path` varchar(100) NOT NULL,-> `firstLetter` char(1) DEFAULT NULL,-> PRIMARY KEY (`id`)-> ) ENGINE=MyISAM AUTO_INCREMENT=45055 DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.08 sec)mysql> load data infile ‘./app.txt‘ into table app_china;Query OK, 17931 rows affected (0.07 sec) #17931条数据用时0.07秒Records: 17931 Deleted: 0 Skipped: 0 Warnings: 0
二.使用mysqldump导出导入数据1.导出数据[root@254host ~]# time mysqldump -uroot -p 27_interna app_china > app_china.sqlEnter password:real 0m2.307suser 0m0.008ssys 0m0.002s2.导入数据[root@254host ~]# time mysql -uroot -p 27_interna < app_china.sqlEnter password:real 0m2.545suser 0m0.013ssys 0m0.000s3.使用source导入这里不演示了,此方法最慢
三、innodb数据导入技巧对于类型为innodb的表,在导入较大数据时调整以下两个参数将大大提高导入速度1.关闭自动提交set autocommit=0;2.修改数据写入磁盘操作set global innodb_flush_log_at_trx_commit=0#默认都为1,导入完成后请都修改回来
总结:
在导入myisam大数据量时可以使用mysql直接导入或者使用into outfile导出为文本再load data导入,使用source将会耗费大量时间
mysql导入导出数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。