新聞中心
最近幾年,云數(shù)據(jù)庫市場日趨繁榮,進(jìn)入百花齊放、百家爭鳴的時(shí)代,頭部云計(jì)算廠商相繼推出了自己的數(shù)據(jù)庫產(chǎn)品,特別是亞馬遜的Aurora、阿里云的PolarDB、華為云的GaussDB等等。

在興寧等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需開發(fā)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,興寧網(wǎng)站建設(shè)費(fèi)用合理。
作為MySQL技術(shù)專家,我寫過MySQL系列叢書《MySQL技術(shù)大全:開發(fā), 優(yōu)化與運(yùn)維實(shí)戰(zhàn)》, 有挺多準(zhǔn)備上云企業(yè)的DBA或者架構(gòu)師同學(xué)詢問,如何對市場上五花八門的數(shù)據(jù)庫進(jìn)行選型, 我覺得首先是穩(wěn)定性, 然后就是性能。今天,我就針對PolarDB、OceanBase、Aurora、GaussDB、TDSQL-C這五款數(shù)據(jù)庫產(chǎn)品做個開箱性能評測供企業(yè)選型參考。
評測總覽
為了方便讀者更好的了解本次性能評測的整體結(jié)論,首先給出測試結(jié)果的總覽圖和相關(guān)結(jié)論:
在小規(guī)格實(shí)例(8C)的性能測試中,無論是在計(jì)算密集型場景還是在I/O密集型場景,各類測試負(fù)載下,PolarDB整體的測試性能是最好的.
對于大規(guī)格實(shí)例(64C),各數(shù)據(jù)庫實(shí)例間的性能差距更為明顯。值得一提的是,在測試負(fù)載下Aurora寫性能明顯較差。整體而言,PolarDB性能相比于Aurora、TDSQL-C、Oceanbase和GaussDB等同類競品同樣具有較為顯著的優(yōu)勢。
圖. 大規(guī)格實(shí)例(64C)性能測試結(jié)果
圖.小規(guī)格實(shí)例(8C)性能測試結(jié)果
壓測情況
本次參與壓力測試的數(shù)據(jù)庫包括了阿里云的PolarDB數(shù)據(jù)庫, 亞馬遜云的Aurora數(shù)據(jù)庫,螞蟻集團(tuán)100%控股的數(shù)據(jù)庫OceanBase數(shù)據(jù)庫,華為云的GaussDB數(shù)據(jù)庫,以及騰訊云的TDSQL-C數(shù)據(jù)庫。參與評審的都是MySQL 兼容版。
壓測環(huán)境
為了保證壓測結(jié)果的公平性,五個數(shù)據(jù)庫均部署在各自的數(shù)據(jù)庫廠商所在的云服務(wù)器上,且每個數(shù)據(jù)庫所在的服務(wù)器實(shí)例規(guī)格都一樣,云服務(wù)器實(shí)例規(guī)格都是8C64GB和64C512GB、MySQL 8.0,一主一從。
但OceanBase數(shù)據(jù)庫由于規(guī)格限制,實(shí)際上,采用的云服務(wù)器實(shí)例規(guī)格為62C400GB。
在實(shí)例規(guī)格一致(除OceanBase使用62C400GB規(guī)格)的前提下,我們在各自的云服務(wù)器上都是采用的開箱配置。
壓測配置
我們會對五個數(shù)據(jù)庫的壓力測試采用計(jì)算密集型和I/O密集型兩種配置方式,并且會采用在配置上嚴(yán)格一致的shell腳本來進(jìn)行壓測。
計(jì)算密集型配置方式
對于計(jì)算密集型配置方式來說,壓測五個數(shù)據(jù)庫時(shí),最終的結(jié)果信息將按如下格式進(jìn)行輸出。
case
數(shù)據(jù)庫名稱;數(shù)據(jù)表的數(shù)量;數(shù)據(jù)表大小(每張表中數(shù)據(jù)的條數(shù));
;最大線程數(shù)量;最小線程數(shù)量;
云服務(wù)器實(shí)例名稱;對應(yīng)線程數(shù)目的QPS;對應(yīng)線程數(shù)目的QPS;
這里,對上述輸出結(jié)果的格式進(jìn)行簡要說明:
- case:表示壓測數(shù)據(jù)庫時(shí)采用的數(shù)據(jù)庫讀寫模式,主要的取值分為:oltp_read_only(只讀模式)、oltp_read_write(讀寫模式)、oltp_write_only(只寫模式)。
- 數(shù)據(jù)庫名稱:壓測數(shù)據(jù)庫時(shí)指定的數(shù)據(jù)庫名稱,例如我們在對數(shù)據(jù)庫采用計(jì)算密集型的配置方式進(jìn)行壓測時(shí),指定的數(shù)據(jù)庫名稱為tpk_s。
- 數(shù)據(jù)表的數(shù)量:壓測數(shù)據(jù)庫時(shí)指定的數(shù)據(jù)庫中數(shù)據(jù)表的數(shù)量,例如我們在對數(shù)據(jù)庫采用計(jì)算密集型的配置方式進(jìn)行壓測時(shí),每個數(shù)據(jù)庫中指定的數(shù)據(jù)表數(shù)量為10。
- 數(shù)據(jù)表大小:壓測數(shù)據(jù)庫時(shí)指定每張數(shù)據(jù)表中數(shù)據(jù)的大小,例如我們在對數(shù)據(jù)庫采用計(jì)算密集型的配置方式進(jìn)行壓測時(shí),每張數(shù)據(jù)表中的數(shù)據(jù)大小為10000000。
- 線程數(shù)量:這個就比較好理解了,壓測數(shù)據(jù)庫時(shí),指定采用多少個線程開始壓測。例如我們對數(shù)據(jù)庫采用計(jì)算密集型的配置方式進(jìn)行壓測時(shí),在8C64GB規(guī)格下,最大線程數(shù)量為128,最小線程數(shù)量為1。在64C512GB規(guī)格下,最大線程數(shù)量為300,最小線程數(shù)量為1。
- 云服務(wù)實(shí)例名稱:數(shù)據(jù)庫所在的云服務(wù)器實(shí)例名稱,注意這里不是壓測腳本所在的云服務(wù)器實(shí)例名稱。
- 對應(yīng)線程數(shù)目的qps:按照格式分別輸出的最大線程數(shù)目和最小線程數(shù)目對應(yīng)的QPS。
I/O密集型配置方式
對于I/O密集型配置方式來說,壓測五個數(shù)據(jù)庫,最終的結(jié)果信息將按照如下格式進(jìn)行輸出。
case
數(shù)據(jù)庫名稱;數(shù)據(jù)表的數(shù)量;數(shù)據(jù)表大小(每張表中數(shù)據(jù)的條數(shù));
;最大線程數(shù)量;最小線程數(shù)量;
云服務(wù)器實(shí)例名稱;對應(yīng)線程數(shù)目的QPS;對應(yīng)線程數(shù)目的QPS;
可以看到,采用I/O密集型的配置方式進(jìn)行壓測與采用計(jì)算密集型的配置方式進(jìn)行壓測輸出的結(jié)果格式是相同的。但進(jìn)行實(shí)際壓測時(shí),二者的配置信息存在稍許差異。
- 計(jì)算密集型方式的數(shù)據(jù)庫名稱為tpk_s,而I/O密集型的配置方式數(shù)據(jù)庫名稱為tpk_l。
- 計(jì)算密集型方式的數(shù)據(jù)表大小為10000000,而I/O密集型的配置方式在8C64GB規(guī)格下,數(shù)據(jù)表大小為40000000。在64C512GB規(guī)格下,數(shù)據(jù)表大小為300000000。
以下是綜合對比結(jié)果, 具體每一個產(chǎn)品PolarDB、OceanBase、Aurora、GaussDB和TDSQL-C 的測試在文章末尾, 感興趣的小伙伴可以參考對比.
綜合對比
8C64GB規(guī)格綜合對比
為了更加直觀的對比每款數(shù)據(jù)庫在8C64GB規(guī)格下的性能,這里我將在8C64GB規(guī)格下的壓測結(jié)果數(shù)據(jù)進(jìn)行整合對比,如下所示。
計(jì)算密集型壓測結(jié)果對比
(1)oltp_read_only模式壓測對比
|
數(shù)據(jù)庫 |
128線程QPS |
1線程QPS |
|
PolarDB |
95863.56 |
5184.38 |
|
OceanBase |
61068.59 |
1953.32 |
|
Aurora |
69933.45 |
3183.13 |
|
GaussDB |
85244.76 |
5638.32 |
|
TDSQL-C |
94343.16 |
4091.835 |
(2)oltp_read_write模式壓測對比
|
數(shù)據(jù)庫 |
128線程QPS |
1線程QPS |
|
PolarDB |
82701.53 |
4809.97 |
|
OceanBase |
39874.51 |
1801.23 |
|
Aurora |
42649.67 |
2465.01 |
|
GaussDB |
58522.77 |
4896.80 |
|
TDSQL-C |
61997.33 |
2661.6075 |
(3)oltp_write_only模式壓測對比
|
數(shù)據(jù)庫 |
128線程QPS |
1線程QPS |
|
PolarDB |
96784.14 |
4617.05 |
|
OceanBase |
31767.13 |
1648.32 |
|
Aurora |
35598.10 |
1484.75 |
|
GaussDB |
58697.92 |
2216.81 |
|
TDSQL-C |
53867.95 |
1799.2725 |
從我對五款數(shù)據(jù)庫進(jìn)行計(jì)算密集型壓測結(jié)果的綜合對比可以看出,在oltp_read_only模式下、oltp_read_write模式下和oltp_write_only模式下,開啟1或128個線程壓測時(shí),PolarDB性能最好。
I/O密集型壓測結(jié)果對比
(1)oltp_read_only模式壓測對比
|
數(shù)據(jù)庫 |
128線程QPS |
1線程QPS |
|
PolarDB |
67105.08 |
2943.15 |
|
OceanBase |
33997.1 |
1684.21 |
|
Aurora |
30695.90 |
1056.77 |
|
GaussDB |
24423.91 |
1927.34 |
|
TDSQL-C |
48069.14 |
2032.22 |
(2)oltp_read_write模式壓測對比
|
數(shù)據(jù)庫 |
128線程QPS |
1線程QPS |
|
PolarDB |
61093.90 |
2891.23 |
|
OceanBase |
29325.76 |
1582.34 |
|
Aurora |
21751.73 |
683.03 |
|
GaussDB |
23178.85 |
1703.34 |
|
TDSQL-C |
38388.89 |
1667.94 |
(3)oltp_write_only模式壓測對比
|
數(shù)據(jù)庫 |
128線程QPS |
1線程QPS |
|
PolarDB |
61438.08 |
2602.82 |
|
OceanBase |
29876.21 |
1503.22 |
|
Aurora |
23290.39 |
1001.32 |
|
GaussDB |
41209.88 |
1638.43 |
|
TDSQL-C |
40414.65 |
1559.45 |
從我對五款數(shù)據(jù)庫進(jìn)行I/O密集型壓測結(jié)果的綜合對比可以看出,無論是在oltp_read_only模式、oltp_read_write模式,還是在oltp_write_only模式下,PolarDB的性能都是最優(yōu)的。
64C512GB規(guī)格綜合對比
為了更加直觀的對比每款數(shù)據(jù)庫在64C512GB規(guī)格下的性能,這里我將在64C512GB規(guī)格下的壓測結(jié)果數(shù)據(jù)進(jìn)行整合對比,如下所示。
計(jì)算密集型壓測結(jié)果對比
(1)oltp_read_only模式壓測對比
|
數(shù)據(jù)庫 |
300線程QPS |
1線程QPS |
|
PolarDB |
583481.91 |
5299.95 |
|
OceanBase |
210599.67 |
1979.00 |
|
Aurora |
460661.52 |
3953.16 |
|
GaussDB |
324943.02 |
5238.16 |
|
TDSQL-C |
345769.06 |
4102.13 |
(2)oltp_read_write模式壓測對比
|
數(shù)據(jù)庫 |
300線程QPS |
1線程QPS |
|
PolarDB |
459306.28 |
4998.68 |
|
OceanBase |
161787.02 |
1725.00 |
|
Aurora |
161193.67 |
2330.50 |
|
GaussDB |
231511.89 |
3528.90 |
|
TDSQL-C |
259070.85 |
2648.34 |
(3)oltp_write_only模式壓測對比
|
數(shù)據(jù)庫 |
300線程QPS |
1線程QPS |
|
PolarDB |
415477.31 |
5025.55 |
|
OceanBase |
102735.32 |
1636.21 |
|
Aurora |
52484.71 |
1282.10 |
|
GaussDB |
195454.50 |
2077.85 |
|
TDSQL-C |
122732.32 |
1799.2725 |
從我對五款數(shù)據(jù)庫進(jìn)行計(jì)算密集型壓測結(jié)果的綜合對比可以看出,無論是在oltp_read_only模式,還是在oltp_read_write模式,亦或是在oltp_write_only模式下,PolarDB的性能都是最好的。
I/O密集型壓測結(jié)果對比
(1)oltp_read_only模式壓測對比
|
數(shù)據(jù)庫 |
300線程QPS |
1線程QPS |
|
PolarDB |
379448.39 |
3205.95 |
|
OceanBase |
186231.85 |
1663.59 |
|
Aurora |
162073.88 |
908.75 |
|
GaussDB |
202102.54 |
2438.24 |
|
TDSQL-C |
130938.23 |
2203.23 |
(2)oltp_read_write模式壓測對比
|
數(shù)據(jù)庫 |
300線程QPS |
1線程QPS |
|
PolarDB |
323182.93 |
3147.55 |
|
OceanBase |
142723.88 |
1592.08 |
|
Aurora |
75080.03 |
807.78 |
|
GaussDB |
164403.19 |
2243.14 |
|
TDSQL-C |
112711.66 |
1782.34 |
(3)oltp_write_only模式壓測對比
|
數(shù)據(jù)庫 |
300線程QPS |
1線程QPS |
|
PolarDB |
335549.53 |
3751.35 |
|
OceanBase |
99543.00 |
1447.24 |
|
Aurora |
26616.15 |
748.74 |
|
GaussDB |
152426.14 |
2254.31 |
|
TDSQL-C |
72023.23 |
1582.23 |
在大規(guī)格實(shí)例I/O密集型壓測中,同樣是PolarDB的測試性能最優(yōu),并且相對其他產(chǎn)品的優(yōu)勢比小規(guī)格實(shí)例更為明顯。
以下是詳細(xì)的PolarDB、OceanBase、Aurora、GaussDB和TDSQL-C 測試結(jié)果.
壓測結(jié)果
在壓測環(huán)境和壓測配置都嚴(yán)格一致的情況下,我們開始對PolarDB、OceanBase、Aurora、GaussDB和TDSQL-C數(shù)據(jù)庫分別進(jìn)行壓測。我對最終壓測得出的結(jié)果數(shù)據(jù)進(jìn)行了整理,下面分別按照8C64GB和64C512GB的規(guī)格給出測試結(jié)果。
8C64GB規(guī)格測試結(jié)果
PolarDB壓測結(jié)果
(1)計(jì)算密集型壓測結(jié)果
|
讀寫模式 |
表數(shù)目 |
表大小 |
最大線程數(shù) |
最小線程數(shù) |
128線程QPS |
1線程QPS |
|
oltp_read_only |
10 |
10000000 |
128 |
1 |
95863.56 |
5184.38 |
|
oltp_read_write |
10 |
10000000 |
128 |
1 |
82701.53 |
4809.97 |
|
oltp_write_only |
10 |
10000000 |
128 |
1 |
96784.14 |
4617.05 |
(2)I/O密集型壓測結(jié)果
|
讀寫模式 |
表數(shù)目 |
表大小 |
最大線程數(shù) |
最小線程數(shù) |
128線程QPS |
1線程QPS |
|
oltp_read_only |
10 |
40000000 |
128 |
1 |
67105.08 |
2943.15 |
|
oltp_read_write |
10 |
40000000 |
128 |
1 |
61093.90 |
2891.23 |
|
oltp_write_only |
10 |
40000000 |
128 |
1 |
61438.08 |
2602.82 |
OceanBase壓測結(jié)果
(1)計(jì)算密集型壓測結(jié)果
|
讀寫模式 |
表數(shù)目 |
表大小 |
最大線程數(shù) |
最小線程數(shù) |
128線程QPS |
1線程QPS |
|
oltp_read_only |
10 |
10000000 |
128 |
1 |
61068.59 |
1953.32 |
|
oltp_read_write |
10 |
10000000 |
128 |
1 |
39874.51 |
1801.23 |
|
oltp_write_only |
10 |
10000000 |
128 |
1 |
31767.13 |
1648.32 |
(2)I/O密集型壓測結(jié)果
|
讀寫模式 |
表數(shù)目 |
表大小 |
最大線程數(shù) |
最小線程數(shù) |
128線程QPS |
1線程QPS |
|
oltp_read_only |
10 |
40000000 |
128 |
1 |
33997.1 |
1684.21 |
|
oltp_read_write |
10 |
40000000 |
128 |
1 |
29325.76 |
1582.34 |
|
oltp_write_only |
10 |
40000000 |
128 |
1 |
29876.21 |
1503.22 |
Aurora壓測結(jié)果
(1)計(jì)算密集型壓測結(jié)果
|
讀寫模式 |
表數(shù)目 |
表大小 |
最大線程數(shù) |
最小線程數(shù) |
128線程QPS |
1線程QPS |
|
oltp_read_only |
10 |
10000000 |
128 |
1 |
69933.45 |
3183.13 |
|
oltp_read_write |
10 |
10000000 |
128 |
1 |
42649.67 |
2465.01 |
|
oltp_write_only |
10 |
10000000 |
128 |
1 |
35598.10 |
1484.75 |
(2)I/O密集型壓測結(jié)果
|
讀寫模式 |
表數(shù)目 |
表大小 |
最大線程數(shù) |
最小線程數(shù) |
128線程QPS |
1線程QPS |
|
oltp_read_only |
10 |
40000000 |
128 |
1 |
30695.90 |
1056.77 |
|
oltp_read_write |
10 |
40000000 |
128 |
1 |
21751.73 |
683.03 |
|
oltp_write_only |
10 |
40000000 |
128 |
1 |
23290.39 |
1001.32 |
GaussDB壓測結(jié)果
(1)計(jì)算密集型壓測結(jié)果
|
讀寫模式 |
表數(shù)目 |
表大小 |
最大線程數(shù) |
最小線程數(shù) |
128線程QPS |
1線程QPS |
|
oltp_read_only |
10 |
10000000 |
128 |
1 |
85244.76 |
5638.32 |
|
oltp_read_write |
10 |


咨詢
建站咨詢
