你我都会遇到的需求:如何导出MySQL中的数据~ 简单!实用!
你我都有的需求
日常的工作中难免有需求分析想把数据库中的数据导出来分析,注意只是将数据导出来,而不是(dump)备份数据库
那本文就跟大家介绍我常用的两种方式,如下:
方式一:tee
tee的功能是把你与MySQL-Server之间的交互记录都记录到你指定的文件中去。
看下的案例:
Step1:按如下的方式同MySQL交互
// tee命令执行之后,你与MySQL之间的所有交流都会被记录到指定的文件中。
mysql> tee /root/res.txt
Logging to file '/root/res.txt'
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| runoob_tbl |
+----------------+
1 row in set (0.00 sec)
mysql> select * from runoob_tbl;
+-----------+-----------------------+-----------------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+-----------------------+-----------------------+-----------------+
| 3 | 欢迎微信搜索: | 风一样的程序员 | 2021-11-18 |
+-----------+-----------------------+-----------------------+-----------------+
1 row in set (0.00 sec)
Step2:退出连接,然后去查看机器上的/etc/root/res.txt

方式二:mysql_use_result
第二种方式如下,在登录MySQL时指定好用哪个数据库和要执行的SQL语句,并将SQL的执行结果一股脑重定向到你指定的文件中。
还是上面的例子,对应的命令如下:
mysql -h 127.0.0.1
-P ${端口}
-p ${密码}
-u ${用户名}
-D ${数据库名}
-e"select * from runoob_tbl;" > ./info_100w &
执行完之后,查看结果文件:

这时候有个风险:如果你的SQL要捞出的数据量动辄几十几百G,或者TB级别,且依然使用上面的方式拉数据的话,就极有可能打爆内存。因为默认如上的情况中(使用的是mysql_store_result模式),MySQL是把你查到的数据全部加载进内存,再一股脑返回给你。
解决的方式:添加--quick参数
mysql -h 127.0.0.1
-P ${端口}
-p ${密码}
-u ${用户名}
-D ${数据库名}
--quick
-e"select * from runoob_tbl;" > ./info_100w &
使用这个参数后会开启mysql_use_result模式,MySQL每读到一行数据,就会立刻将这行数据返回给客户端,虽然交互的次数多了点,但是直接解决掉客户端内存消耗问题。图片
学废了没?
推荐阅读
一、给研发同学看的面试指南
1、MySQL的修仙之路,图文谈谈如何学MySQL、如何进阶!
2、数据库面经,常见的面试题....
6、能谈谈year、date、datetime、time、timestamp的区别吗?
10、了解Flush-List吗?顺便说一下脏页的落盘机制!
11、用 11 张图讲清楚,当你CRUD时BufferPool中发生了什么!以及BufferPool的优化!
16、简述undo log、truncate、以及undo log如何帮你回滚事务?
19、LSN、Checkpoint?谈谈MYSQL的崩溃恢复是怎么回事!
20、MySQL的 bin log有啥用?在哪里?谁写的?怎么配置?
21、bin log有哪些格式?有啥区别?优缺点?线上用哪种格式?
24、自导自演的数据库面试现场--谈谈MySQL的10种文件
25、大型面试现场:一条update sql的执行都经历了什么?
26、大型翻车现场:如何实现记录存在的话就更新,如果记录不存在的话就插入。
28、面试现场:说说char和varchar的区别你了解多少?
29、沙尘暴也阻挡不了学习的脚步-- 面试官:你竟然不知道MySQL的组提交?
30、聊聊MySQL大insert buffer和change buffer吧!
39、白日梦的Golang的SQL连接池源码梳理笔记,建议先收藏,再阅读哦~
40、面试被问如何排查慢查询(执行计划)怎么办?愣着干嘛?进来白嫖呀!
41、简单实用:了解后端如何存储表情包,只需3分钟......
连载中~,还有15篇文章,公众号第一时间发布~
二、MySQL-视频
P02 视频+图文串讲: MySQL行锁、Gap锁、Next-Key-Lock实战23:07
三、进阶MySQL中间件-视频
P03 基于binlog+postion搭建MYSQL集群原理及实战17:47
P08 MySQL协议-Handshake!和中间件握手机制原理11:46
四、白日梦的云原生-笔记
1、这一次,让我在百度告诉你,当你请求www.baidu.com时都发生了什么?
5、玩转docker容器编排调度 docker-compose、docker-swarm
6、你还不懂Docker容器间网络互联原理吗?来白嫖啊...... 建议收藏哦
五、白日梦的云原生-视频
p02 终于有人讲明白了iptables和docker网络!21:42
你我都会遇到的需求:如何导出MySQL中的数据~ 简单!实用!的更多相关文章
- jsp+servlet+poi导出数据库中的数据
index.jsp: <a href="POIout">简单导出数据</a> <a href="POIoutTemplate"&g ...
- PHP如何批量更新MYSQL中的数据
最近项目需要用到批量更新数据库里的数据,在网上找了一下这方面的例子,觉得这个还不错,分享给大家. 在这个业务里里面涉及到了更新两张数据表,那么大家是不是会想到非常简单,马上上代码 $sql ,type ...
- PHP批量更新MYSQL中的数据
原文链接:https://blog.csdn.net/wuming19900801/article/details/62893429 $sql = "update newhouse_clic ...
- C#读取Excel表格数据到DataGridView中和导出DataGridView中的数据到Excel
其实想在datagridview中显示excel表格中的数据跟读取数据库中的数据没什么差别,只不过是创建数据库连接的时候连接字段稍有差别. private void btnShow_Click(obj ...
- Java利用POI导入导出Excel中的数据
首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ...
- Vusual C++连接Mysql和从MySql中取出数据的API介绍
.1 mysql_real_connect() 2.1.1 函数原型: MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const ...
- 用python批量向数据库(MySQL)中导入数据
用python批量向数据库(MySQL)中导入数据 现有数十万条数据,如下的经过打乱处理过的数据进行导入 数据库内部的表格的数据格式如下与下面的表格结构相同 Current database: pyt ...
- hadoop项目实战--ETL--(二)实现自动向mysql中添加数据
四 项目开发 1 创建数据库db_etl,新建两张表user 和oder.表结构如第一部分图所示. 2 编写python脚本,实现自动向mysql中插入数据. 新建python 项目,目录结构如下图 ...
- PHP读取mysql中的数据
<!DOCTYPE HTML> <html> <head> <title> PHP动态读取mysql中的数据 </title> <me ...
随机推荐
- 为什么我的 WordPress 网站被封了?
今年以来,一系列 "清朗" "护苗" "净网" 专项整治行动重拳出击,"清朗·春节网络环境"取消备案网站平台2300余家 ...
- element菜单刷新后定位问题?
之前这样写不行 <el-menu mode="vertical" theme="dark" ref="navbar" :default ...
- OSI七层模型(Open System Interconnection)
应用层 网络服务与最终用户的一个接口. 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP 表示层 数据的表示.安全.压缩.(在五层模型里面已 ...
- 使用并行Foreach优化SqlSugarMapper
最近在迁移公司导入导出项目时,发现导出速度特别慢,大概2K数据需要导出近半个小时,通过在程序各个地方埋点,最终定位到了Sqlsugar的Mapper中,随后通过并行Foreach单独抽出Mapper中 ...
- SpringCloud创建项目父工程
1.说明 本文详解介绍Spring Cloud项目的父工程创建, 由于Spring Cloud项目下有很多模块组件, 需要先创建一个大的父工程项目, 然后在下面创建各个子工程模块. 2.创建父工程 这 ...
- css 基础 选择器的使用
1.标签选择器解释:是针对一个标签做的样式,它会将匹配的所有标签都发生改变语法格式:标签名{ css样式代码 }2.类选择器特点:1.可以给某一个标签标记为一类,设定css样式,比较灵活 2.类目可以 ...
- layui父表单获取子表单的值完成修改操作
最近在做项目时,学着用layui开发后台管理系统. 但在做编辑表单时遇到了一个坑. 点击编辑时会出现一个弹窗. 我们需要从父表单传值给子表单.content是传值给子表单 layer.open({ t ...
- 微信小程序输入框上移问题解决
微信小程序的输入框在上面还好,如果不是,在聚焦的时候页面就会上移,上方的页面信息会看不到,影响用户操作 在这里可以手动设置并获取输入框的高度来解决 这种方式虽然有的机子有点卡,但是已经算是比较完美的解 ...
- CSS命名规范整理
基于网易NEC修改后,整理的命名规范 单行写完一个选择器定义 便于选择器的寻找和阅读,也便于插入新选择器和编辑,便于模块等的识别.去除多余空格,使代码紧凑减少换行. 如果有嵌套定义,可以采取内部单行的 ...
- Java NIO Channel 使用
Java NIO 中的 Channel 分类: FileChannel SocketChannel ServerSocketChannel DatagramChannel channel 分类 Fil ...