mysqlpump和mysqldump的效能大比拼(r12筆記第90天)

dbasdk發表於2017-06-14
昨天測試了一下mysqlpump,今天來把剩下的補充完成,算是一個小的系列。

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章