设为首页 收藏本站
查看: 787|回复: 0

[经验分享] mysql 批量导入数据

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-22 10:47:23 | 显示全部楼层 |阅读模式
mysql 批量导入数据
    在我们使用数据库的过程中,避免不了备份、恢复、导入、导出数据,方法比较多,根据不同的数据量选择不同的方法,会提高我们的工作效率,
(1)从表A导入数据到表B;一般涉及到表结构相同或者表结构不同等情况,数据量少的时候效率很高,
测试表A为 send_done,创建语句为下面内容,


1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `send_done` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `phone` varchar(20) NOT NULL,
  `content` varchar(1000) NOT NULL,
  `intime` datetime NOT NULL,
  `state` int(11) NOT NULL,
  `sendtime` datetime DEFAULT NULL,
  `statcode` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `ind_state` (`state`)
) ENGINE=InnoDB AUTO_INCREMENT=1166482 DEFAULT CHARSET=utf8



1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `send_sf_done` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `phone` varchar(20) NOT NULL,
  `content` varchar(1000) NOT NULL,
  `intime` datetime NOT NULL,
  `state` int(11) NOT NULL,
  `sendtime` datetime DEFAULT NULL,
  `statcode` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `ind_state` (`state`)
) ENGINE=InnoDB AUTO_INCREMENT=1166482 DEFAULT CHARSET=utf8



表A的数据
MariaDB [wangjubao]> select  *  from  send_done;
+---------+-------------+--------------------------------+---------------------+-------+---------------------+---------------------+
| id      | phone       | content                        | intime              | state | sendtime            | statcode            |
+---------+-------------+--------------------------------+---------------------+-------+---------------------+---------------------+
| 1166459 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 10:33:02 |     1 | 2016-11-04 10:44:21 | 2114782562554393363 |
| 1166461 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 10:45:53 |    -3 | 2016-11-04 10:46:05 | -3                  |
| 1166463 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 10:47:42 |    -3 | 2016-11-04 10:47:54 | -3                  |
| 1166465 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 10:49:08 |    -3 | 2016-11-04 10:49:19 | -3                  |
| 1166467 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 10:55:33 |     1 | 2016-11-04 10:55:53 | 2114782569505307918 |
| 1166469 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:10:20 |    -3 | 2016-11-04 11:15:17 | -3                  |
| 1166471 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:16 |     1 | 2016-11-04 11:23:18 | 2114782586069773509 |
| 1166473 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:34 |     1 | 2016-11-04 11:23:35 | 2114782586234583070 |
| 1166475 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:34 |     1 | 2016-11-04 11:23:35 | 2114782586234583070 |
| 1166477 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:35 |     1 | 2016-11-04 11:23:36 | 2114782586244477897 |
| 1166479 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:35 |     1 | 2016-11-04 11:23:36 | 2114782586244477897 |
| 1166481 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:35 |     1 | 2016-11-04 11:23:36 | 2114782586244477897 |
+---------+-------------+--------------------------------+---------------------+-------+---------------------+---------------------+
1、从表A导入表B
insert  into  send_done  select *  from send_sf_done; (字段全部一样时不用写字段)
2、从表A导出文本加载到B
导出数据
select   *  from  send_done  into outfile "/tmp/winn.sql ";

MariaDB [wangjubao]>  select   *  from  send_done  into outfile "/tmp/winn.sql "
    -> ;
Query OK, 12 rows affected (0.00 sec)
检查导出文件
[iyunv@slave1 tmp]# cat  winn.sql
1166459 15021970243     冬天到了【云信测试】    2016-11-04 10:33:02     1       2016-11-04 10:44:21     2114782562554393363
1166461 15021970243     冬天到了【云信测试】    2016-11-04 10:45:53     -3      2016-11-04 10:46:05     -3
1166463 15021970243     冬天到了【云信测试】    2016-11-04 10:47:42     -3      2016-11-04 10:47:54     -3
1166465 15021970243     冬天到了【云信测试】    2016-11-04 10:49:08     -3      2016-11-04 10:49:19     -3
1166467 15021970243     冬天到了【云信测试】    2016-11-04 10:55:33     1       2016-11-04 10:55:53     2114782569505307918
1166469 15021970243     冬天到了【云信测试】    2016-11-04 11:10:20     -3      2016-11-04 11:15:17     -3
1166471 15021970243     冬天到了【云信测试】    2016-11-04 11:23:16     1       2016-11-04 11:23:18     2114782586069773509
1166473 15021970243     冬天到了【云信测试】    2016-11-04 11:23:34     1       2016-11-04 11:23:35     2114782586234583070
1166475 15021970243     冬天到了【云信测试】    2016-11-04 11:23:34     1       2016-11-04 11:23:35     2114782586234583070
1166477 15021970243     冬天到了【云信测试】    2016-11-04 11:23:35     1       2016-11-04 11:23:36     2114782586244477897
1166479 15021970243     冬天到了【云信测试】    2016-11-04 11:23:35     1       2016-11-04 11:23:36     2114782586244477897
1166481 15021970243     冬天到了【云信测试】    2016-11-04 11:23:35     1       2016-11-04 11:23:36     2114782586244477897

删除之前从A表导入B表的数据,
MariaDB [wangjubao]> delete   from send_sf_done;
Query OK, 12 rows affected (0.00 sec)
MariaDB [wangjubao]> select  *  from  send_sf_done;
Empty set (0.00 sec)
加载导出的文件
load data infile '/tmp/winn.sql' into table  send_sf_done;
MariaDB [wangjubao]> load data infile '/tmp/winn.sql' into table  send_sf_done;
Query OK, 12 rows affected (0.00 sec)               
Records: 12  Deleted: 0  Skipped: 0  Warnings: 0
MariaDB [wangjubao]> select  *  from  send_sf_done;
+---------+-------------+--------------------------------+---------------------+-------+---------------------+---------------------+
| id      | phone       | content                        | intime              | state | sendtime            | statcode            |
+---------+-------------+--------------------------------+---------------------+-------+---------------------+---------------------+
| 1166459 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 10:33:02 |     1 | 2016-11-04 10:44:21 | 2114782562554393363 |
| 1166461 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 10:45:53 |    -3 | 2016-11-04 10:46:05 | -3                  |
| 1166463 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 10:47:42 |    -3 | 2016-11-04 10:47:54 | -3                  |
| 1166465 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 10:49:08 |    -3 | 2016-11-04 10:49:19 | -3                  |
| 1166467 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 10:55:33 |     1 | 2016-11-04 10:55:53 | 2114782569505307918 |
| 1166469 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:10:20 |    -3 | 2016-11-04 11:15:17 | -3                  |
| 1166471 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:16 |     1 | 2016-11-04 11:23:18 | 2114782586069773509 |
| 1166473 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:34 |     1 | 2016-11-04 11:23:35 | 2114782586234583070 |
| 1166475 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:34 |     1 | 2016-11-04 11:23:35 | 2114782586234583070 |
| 1166477 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:35 |     1 | 2016-11-04 11:23:36 | 2114782586244477897 |
| 1166479 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:35 |     1 | 2016-11-04 11:23:36 | 2114782586244477897 |
| 1166481 | 15021970243 | 冬天到了【云信测试】           | 2016-11-04 11:23:35 |     1 | 2016-11-04 11:23:36 | 2114782586244477897 |
+---------+-------------+--------------------------------+---------------------+-------+---------------------+---------------------+
方法3 使用select 导出数据
  mysql  -u  root  -p  -e  "select  *  from wangjubao.send_done;" >/tmp/winner2.sql
检查数据
[iyunv@slave1 tmp]# cat  winner2.sql
id      phone   content intime  state   sendtime        statcode
1166459 15021970243     冬天到了【云信测试】    2016-11-04 10:33:02     1       2016-11-04 10:44:21     2114782562554393363
1166461 15021970243     冬天到了【云信测试】    2016-11-04 10:45:53     -3      2016-11-04 10:46:05     -3
1166463 15021970243     冬天到了【云信测试】    2016-11-04 10:47:42     -3      2016-11-04 10:47:54     -3
1166465 15021970243     冬天到了【云信测试】    2016-11-04 10:49:08     -3      2016-11-04 10:49:19     -3
1166467 15021970243     冬天到了【云信测试】    2016-11-04 10:55:33     1       2016-11-04 10:55:53     2114782569505307918
1166469 15021970243     冬天到了【云信测试】    2016-11-04 11:10:20     -3      2016-11-04 11:15:17     -3
1166471 15021970243     冬天到了【云信测试】    2016-11-04 11:23:16     1       2016-11-04 11:23:18     2114782586069773509
1166473 15021970243     冬天到了【云信测试】    2016-11-04 11:23:34     1       2016-11-04 11:23:35     2114782586234583070
1166475 15021970243     冬天到了【云信测试】    2016-11-04 11:23:34     1       2016-11-04 11:23:35     2114782586234583070
1166477 15021970243     冬天到了【云信测试】    2016-11-04 11:23:35     1       2016-11-04 11:23:36     2114782586244477897
1166479 15021970243     冬天到了【云信测试】    2016-11-04 11:23:35     1       2016-11-04 11:23:36     2114782586244477897
1166481 15021970243     冬天到了【云信测试】    2016-11-04 11:23:35     1       2016-11-04 11:23:36     2114782586244477897
处理第一行
sed   -i  "1,1d"  /tmp/winner2.sq
处理结果
1166459 15021970243     冬天到了【云信测试】    2016-11-04 10:33:02     1       2016-11-04 10:44:21     2114782562554393363
1166461 15021970243     冬天到了【云信测试】    2016-11-04 10:45:53     -3      2016-11-04 10:46:05     -3
1166463 15021970243     冬天到了【云信测试】    2016-11-04 10:47:42     -3      2016-11-04 10:47:54     -3
1166465 15021970243     冬天到了【云信测试】    2016-11-04 10:49:08     -3      2016-11-04 10:49:19     -3
1166467 15021970243     冬天到了【云信测试】    2016-11-04 10:55:33     1       2016-11-04 10:55:53     2114782569505307918
1166469 15021970243     冬天到了【云信测试】    2016-11-04 11:10:20     -3      2016-11-04 11:15:17     -3
1166471 15021970243     冬天到了【云信测试】    2016-11-04 11:23:16     1       2016-11-04 11:23:18     2114782586069773509
1166473 15021970243     冬天到了【云信测试】    2016-11-04 11:23:34     1       2016-11-04 11:23:35     2114782586234583070
1166475 15021970243     冬天到了【云信测试】    2016-11-04 11:23:34     1       2016-11-04 11:23:35     2114782586234583070
1166477 15021970243     冬天到了【云信测试】    2016-11-04 11:23:35     1       2016-11-04 11:23:36     2114782586244477897
1166479 15021970243     冬天到了【云信测试】    2016-11-04 11:23:35     1       2016-11-04 11:23:36     2114782586244477897
1166481 15021970243     冬天到了【云信测试】    2016-11-04 11:23:35     1       2016-11-04 11:23:36     2114782586244477897
加载数据
   



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-345619-1-1.html 上篇帖子: MYSQL使用mysqldump导出某个表的部分数据 下篇帖子: MySQL 分区表原理及数据备份转移实战 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表