你我都會遇到的需求:如何匯出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、大型翻車現場:如何實現記錄存在的話就更新,如果記錄不存在的話就插入。
27、如何實現記錄存在的話就更新,如果記錄不存在的話就插入--續
28、面試現場:說說char和varchar的區別你瞭解多少?
29、沙塵暴也阻擋不了學習的腳步-- 面試官:你竟然不知道MySQL的組提交?
30、聊聊MySQL大insert buffer和change buffer吧!
39、白日夢的Golang的SQL連線池原始碼梳理筆記,建議先收藏,再閱讀哦~
40、面試被問如何排查慢查詢(執行計劃)怎麼辦?愣著幹嘛?進來白嫖呀!
41、簡單實用:瞭解後端如何儲存表情包,只需3分鐘......
42、視訊串講:基於bin-log&position搭建主從架構MySQL --建議收藏哦~