mysqlpump和mysqldump的效能大比拼(r12筆記第90天)
mysqlpump
在MySQL 5.7中做邏輯備份恢復有了一個新的工具mysqlpump,如果你掌握了mysqldump,那麼使用mysqlpump就是分分鐘的事情,因為很多引數都是很相似的,可以理解它是mysqldump的加強版,一個亮點就是有了並行的選項,使得資料備份的效能更加強大。
有一點值得說明的是,為了保證資料一致性,我們一般備份都會使用--single-transaction的選項,在5.7.11以前,mysqlpump和並行引數是有衝突的,在這個版本之後做了修復。
但是mysqlpump到底怎麼樣呢,我在5.7.17的版本中做了一些簡單的測試,可以看出一些效能的差異。
而mysqldump是大家最耳熟能詳的工具了,如果沒用過,都不好意思說自己會MySQL,這樣一個工具和Oracle裡的exp工具一般,經典而且功能豐富。
測試環境說明
為了儘可能保證匯出的資料備份能夠佔用少的磁碟空間,我們經常會使用gzip來壓縮,我們就分了幾個場景來對比壓縮,不壓縮,開啟並行後的資料備份的效能差異。
我選取的資料集大小在30G左右。含有5個資料庫,單表資料量在200萬以上,單庫的表數量在10個以上。
資料備份的測試結果
資料備份的測試場景自己做得多一些,當然備份層面的壓縮暫時還沒有測完整,其它的場景
|
option | real | idle% | dump_size(byte) |
mysqlpump | compress=false | 6m52.232s | 85.92 | 26199028017 |
|
compress=false|gzip | 43m12.574s | 90.72 | 12571701197 |
|
compress=true | 19m24.541s | 80.48 | 26199028017 |
|
compress=true |gzip | 43m12.515s | 84.94 | 12571200219 |
|
parallelism=4 | 5m30.005s | 76.43 | 26199028017 |
|
parallelism=4 |gzip | 42m41.433s | 90.51 | 12575331504 |
|
parallelism=8 | 4m44.177s | 66.73 | 26199028017 |
|
parallelism=8 |gzip | 42m50.417s | 90.38 | 12574079375 |
|
parallelism=16 | 5m19.060s | 90.38 | 26199028017 |
|
parallelism=16 |gzip | 42m50.939s | 89.65 | 12577618359 |
|
parallelism=32 | 5m10.220s | 89.23 | 26199028017 |
|
parallelism=32 |gzip | 45m47.022s | 89.7 | 12577618359 |
mysqldump | compress=false | 9m19.785s | 87.33 | 26176062499 |
|
compress=false |gzip | 43m23.036s | 90.97 | 12524413896 |
|
compress=true | 37m42.052s | 90.1 | 26176062499 |
|
compress=true |gzip | 43m17.755s | 85.89 | 12524413896 |
|
compress=true | 38m55.968s | 90.22 | 26176062499 |
|
compress=true |gzip | 43m1.672s | 85.77 | 12524413896 |
可以看到預設來說,匯出一個30G左右的dump需要近7分鐘,而啟用了並行之後,並行度為4的時候,匯出時間是5分半,提升了1.5分鐘(20%),並行度為8之後提升了2分鐘左右(30%)。而在系統層面做了壓縮的時候,壓縮率達到了近48%,而並行度在更大的時候,備份速度就差別不大了,一來也和CPU的情況有關,整體來說並行的效果還是不錯的。在compress=true只是在服務端客戶端互動中使用資料包壓縮,最後的備份集大小是沒有任何改變的。後續會測試使用不同的壓縮演算法,備份的效能差異。
系統層面壓縮備份的情況
如果備份不透過gzip管道來壓縮,而是直接生成備份壓縮,效率如果呢。一個26G左右的備份,gzip壓縮的時間大概是43m18.974s,其實還真不短,比預想的長多了。
資料匯入效率
資料的匯入,我就簡單測試了兩個場景,mysqlpump並行備份匯出,匯入,mysqldump備份匯出匯入
mysqlpump | export parallelism=4 | 7m |
|
import | 85m4.574s |
mysqldump | export | 9m8.420s |
|
import | 97m9.760s |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-2140756/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysqlpump的效能測試(r12筆記第89天)MySql筆記
- mysqldump的一點使用總結(r12筆記第81天)MySql筆記
- mysqldump與mysqlpumpMySql
- sandbox和MHA快速測試(r12筆記第32天)筆記
- MySQL中的binlog和redo淺析(r12筆記第5天)MySql筆記
- MySQL中的derived table(r12筆記第47天)MySql筆記
- 歸零的心態(r12筆記第82天)筆記
- 我爸爸眼中的我(r12筆記第22天)筆記
- 一個IT人和ppt的故事(r12筆記第39天)筆記
- 我的女兒二三事(七)(r12筆記第58天)筆記
- 玩足彩的一點感受(r12筆記第80天)筆記
- 駕考的一點總結(r12筆記第93天)筆記
- 聊點高考往事和駕照科目二考試(r12筆記第86天)筆記
- 推薦最近收藏的幾篇文章(r12筆記第85天)筆記
- 關於金錢的幾個小故事(r12筆記第8天)筆記
- MySQL自增列的重複值問題(r12筆記第25天)MySql筆記
- MySQL無法建立表的問題分析(r12筆記第73天)MySql筆記
- 一種Oracle快速的整合遷移方案(r12筆記第98天)Oracle筆記
- Oracle閃回原理測試(三)(r12筆記第16天)Oracle筆記
- MySQL原始碼安裝總結(r12筆記第12天)MySql原始碼筆記
- Oracle 12c DBCA淺析(r12筆記第48天)Oracle筆記
- Navicat、into outfile、mysql命令、mysqldump、mysqlpump、mydumper匯出匯入資料MySql
- 心理學中的效應簡單解讀(r12筆記第24天)筆記
- Web框架第7輪效能大比拼結果揭曉Web框架
- MySQL傳輸表空間小結(r12筆記第2天)MySql筆記
- MySQL service啟動指令碼淺析(r12筆記第59天)MySql指令碼筆記
- 相同update語句在MySQL,Oracle的不同表現(r12筆記第30天)MySqlOracle筆記
- 一個ORA-00600問題的簡單分析(r12筆記第18天)筆記
- 使用pt工具檢測MySQL主從延遲(r12筆記第7天)MySql筆記
- 在eclipse中配置MySQL原始碼環境(r12筆記第14天)EclipseMySql原始碼筆記
- 分分鐘搭建MySQL一主多從環境(r12筆記第31天)MySql筆記
- 資料架構難點-資料分佈(r12筆記第43天)架構筆記
- MySQL中的批量初始化資料的對比測試(r12筆記第71天)MySql筆記
- MySQL自增列主從不一致的測試(r12筆記第37天)MySql筆記
- 總結一下這一百天來的收穫(r12筆記第100天)筆記
- 分分鐘搭建MySQL Group Replication測試環境(二)(r12筆記第41天)MySql筆記
- Const和Readonly大比拼讀你必須知道的.net讀書筆記筆記
- Java Bean Copy 效能大比拼JavaBean