您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關怎樣對比mysqlpump和mysqldump的性能,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
昨天測試了一下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 |
以上就是怎樣對比mysqlpump和mysqldump的性能,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。