如何選擇合適的數據庫?

如何選擇合適的數據庫?
雲數據庫這個新大陸,而且對比了騰訊雲數據庫和自建數據庫的性能,發如今不對自建數據庫進行優化的前提下,雲數據庫相比較自建數據庫仍是有很大性能上的優點的。
拿雲數據庫跟自建數據庫比,不是開玩笑嗎。確實,雲數據庫跟自建數據庫在具體的硬件配置上無法徹底統一,好比硬盤是普通磁盤仍是SSD,網絡帶寬跟穩定性是否有差別等。因而萌生了一個想法,借了朋友的阿里雲帳號,來看看一樣都是雲數據庫,一樣配置的狀況下,阿里雲和騰訊雲各自能給出多優秀的答卷。
一樣的,此次選擇了阿里雲數據庫RDS的4核8G和8核32G版本,對比一樣配置的騰訊雲數據庫,在不修改參數、不作配置改動的前提下,使用sysbench進行分別進行壓力測試,詳細配置以下表所示:數據庫

對象 內存 CPU 硬盤 CVM操做系統 MySQL版本 sysbench版本
阿里雲 8G/32G 4核/8核 200G雲盤 CentOS 7.2 64位 5.7 1.0.9
騰訊雲 8G/32G 4核/8核 200G雲盤 CentOS 7.6 64位 5.7 1.0.9
爲了保證公平公正,須要控制大部分變量,包括用來進行測試的雲主機的軟硬件配置和網絡帶寬(均經過內網鏈接)。接下來就能夠進行測試了,此次測試的數據依然是由sysbench自動生成,20張表x1000萬行數據,線程數從20-500,每組測試兩次取平均值,依然採用讀寫混合的模式比較QPS和TPS等性能參數指標。服務器

結果比想象的有趣,騰訊雲在50線程如下的時候表現超出阿里雲太多,維持在1.5-2倍,在100-200線程的時候,騰訊雲的吞吐量維持在阿里雲的1.2倍左右,可是阿里雲對併發能力的支持效果好過騰訊雲。在500線程的時候,阿里雲依然能保持在46000+併發的水平,遠高於騰訊雲的28000+。

看起來總體走勢基本相同,騰訊雲數據庫的峯值表如今50-100線程之間,不過騰訊雲數據庫的性能力真心強啊,最好的時候甩了阿里雲一倍以上。在32G內存的支持下,阿里雲和騰訊雲併發性能也有了提高,在500線程的時候阿里雲一直保持恐怖的穩定,筆者特意又加測了750和1000線程,知道1000線程時阿里雲仍保持70000+的QPS,不過騰訊雲也不甘示弱,維持在60000的高水平。網絡

TPS(Transactions Per Second)表示服務器每秒處理的事務,由於跟事務掛鉤,也是MySQL在OLTP場景一個很是重要的測量指標。總體來看,騰訊雲的可用性高於阿里雲,不過對多線程的支持上仍是較阿里雲稍差一些。
此外還比較了延時等其餘穩定性指標,騰訊雲跟阿里雲基本相同,由於篇幅問題就不在文章中貼圖了,感興趣的同窗也能夠本身動手測一下。
另外要給阿里雲開發小哥哥們提個建議,在測試過程當中,使用阿里雲主機的遠程鏈接Web版輸入長指令實在是太痛苦了,一旦輸入就很難修改,每每要刪掉重來。另外遠程鏈接的反應很慢,並且屏幕一滾動就開始顯示亂碼,建議開發小哥哥們改進一下。
不過這裏要稱讚一下阿里雲數據庫的性能監控,作的實在是高大上,看着很舒心.多線程

在測試的時候能夠實時監控QPS/TPS,還有鏈接數和網絡,比起看sysbench的平均數據信息量大多了,能夠看到的性能的抖動。還能夠翻歷史記錄。到這裏才發現,原來雲數據庫賣的可不只僅是數據庫,還有數據管理、性能監控、系統告警等等功能呢,這下明白朋友公司爲何要用雲數據庫了。不說了,找老闆聊聊去。
最後仍是要給出一個結論,經過的簡單測試,發現MySQL的吞吐量性能(QPS/TPS),在較低線程數的時候騰訊雲遠好於阿里雲,隨着線程數增長,騰訊雲數據庫在性能上增加不及阿里雲,但整體仍強於阿里雲,在500線程+的戰場,騰訊雲落後於阿里雲。不過隨着硬件配置增加,兩者對併發的支持也在不斷增長,到8核32G內存往上,騰訊雲跟阿里雲在高併發場景下差距已經不大。
把測試結果給朋友看,朋友翻了個白眼:「高併發還用什麼MySQL,那時候應該用Redis啦。」
什麼?Redis,不熟啊,有沒有云數據庫Redis版給玩一下。一搜,嘿,還真有,下次來測一下Redis。併發

相關文章
相關標籤/搜索