最近几年,云数据库市场日趋繁荣,进入百花齐放、百家争鸣的时代,头部云计算厂商相继推出了自己的数据库产品,特别是亚马逊的Aurora、阿里云的PolarDB、华为云的GaussDB等等。
在兴宁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、做网站 网站设计制作按需开发网站,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站建设,外贸网站制作,兴宁网站建设费用合理。
作为MySQL技术专家,我写过MySQL系列丛书《MySQL技术大全:开发, 优化与运维实战》, 有挺多准备上云企业的DBA或者架构师同学询问,如何对市场上五花八门的数据库进行选型, 我觉得首先是稳定性, 然后就是性能。今天,我就针对PolarDB、OceanBase、Aurora、GaussDB、TDSQL-C这五款数据库产品做个开箱性能评测供企业选型参考。
为了方便读者更好的了解本次性能评测的整体结论,首先给出测试结果的总览图和相关结论:
在小规格实例(8C)的性能测试中,无论是在计算密集型场景还是在I/O密集型场景,各类测试负载下,PolarDB整体的测试性能是最好的.
对于大规格实例(64C),各数据库实例间的性能差距更为明显。值得一提的是,在测试负载下Aurora写性能明显较差。整体而言,PolarDB性能相比于Aurora、TDSQL-C、Oceanbase和GaussDB等同类竞品同样具有较为显著的优势。
图. 大规格实例(64C)性能测试结果
图.小规格实例(8C)性能测试结果
本次参与压力测试的数据库包括了阿里云的PolarDB数据库, 亚马逊云的Aurora数据库,蚂蚁集团100%控股的数据库OceanBase数据库,华为云的GaussDB数据库,以及腾讯云的TDSQL-C数据库。参与评审的都是MySQL 兼容版。
为了保证压测结果的公平性,五个数据库均部署在各自的数据库厂商所在的云服务器上,且每个数据库所在的服务器实例规格都一样,云服务器实例规格都是8C64GB和64C512GB、MySQL 8.0,一主一从。
但OceanBase数据库由于规格限制,实际上,采用的云服务器实例规格为62C400GB。
在实例规格一致(除OceanBase使用62C400GB规格)的前提下,我们在各自的云服务器上都是采用的开箱配置。
我们会对五个数据库的压力测试采用计算密集型和I/O密集型两种配置方式,并且会采用在配置上严格一致的shell脚本来进行压测。
对于计算密集型配置方式来说,压测五个数据库时,最终的结果信息将按如下格式进行输出。
case
数据库名称;数据表的数量;数据表大小(每张表中数据的条数);
;最大线程数量;最小线程数量;
云服务器实例名称;对应线程数目的QPS;对应线程数目的QPS;
这里,对上述输出结果的格式进行简要说明:
对于I/O密集型配置方式来说,压测五个数据库,最终的结果信息将按照如下格式进行输出。
case
数据库名称;数据表的数量;数据表大小(每张表中数据的条数);
;最大线程数量;最小线程数量;
云服务器实例名称;对应线程数目的QPS;对应线程数目的QPS;
可以看到,采用I/O密集型的配置方式进行压测与采用计算密集型的配置方式进行压测输出的结果格式是相同的。但进行实际压测时,二者的配置信息存在稍许差异。
以下是综合对比结果, 具体每一个产品PolarDB、OceanBase、Aurora、GaussDB和TDSQL-C 的测试在文章末尾, 感兴趣的小伙伴可以参考对比.
为了更加直观的对比每款数据库在8C64GB规格下的性能,这里我将在8C64GB规格下的压测结果数据进行整合对比,如下所示。
(1)oltp_read_only模式压测对比
数据库 |
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模式压测对比
数据库 |
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模式压测对比
数据库 |
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 |
从我对五款数据库进行计算密集型压测结果的综合对比可以看出,在oltp_read_only模式下、oltp_read_write模式下和oltp_write_only模式下,开启1或128个线程压测时,PolarDB性能最好。
(1)oltp_read_only模式压测对比
数据库 |
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模式压测对比
数据库 |
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模式压测对比
数据库 |
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 |
从我对五款数据库进行I/O密集型压测结果的综合对比可以看出,无论是在oltp_read_only模式、oltp_read_write模式,还是在oltp_write_only模式下,PolarDB的性能都是最优的。
64C512GB规格综合对比
为了更加直观的对比每款数据库在64C512GB规格下的性能,这里我将在64C512GB规格下的压测结果数据进行整合对比,如下所示。
(1)oltp_read_only模式压测对比
数据库 |
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模式压测对比
数据库 |
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模式压测对比
数据库 |
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 |
从我对五款数据库进行计算密集型压测结果的综合对比可以看出,无论是在oltp_read_only模式,还是在oltp_read_write模式,亦或是在oltp_write_only模式下,PolarDB的性能都是最好的。
(1)oltp_read_only模式压测对比
数据库 |
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模式压测对比
数据库 |
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模式压测对比
数据库 |
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 |
在大规格实例I/O密集型压测中,同样是PolarDB的测试性能最优,并且相对其他产品的优势比小规格实例更为明显。
以下是详细的PolarDB、OceanBase、Aurora、GaussDB和TDSQL-C 测试结果.
在压测环境和压测配置都严格一致的情况下,我们开始对PolarDB、OceanBase、Aurora、GaussDB和TDSQL-C数据库分别进行压测。我对最终压测得出的结果数据进行了整理,下面分别按照8C64GB和64C512GB的规格给出测试结果。
(1)计算密集型压测结果
读写模式 |
表数目 |
表大小 |
最大线程数 |
最小线程数 |
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密集型压测结果
读写模式 |
表数目 |
表大小 |
最大线程数 |
最小线程数 |
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 |
(1)计算密集型压测结果
读写模式 |
表数目 |
表大小 |
最大线程数 |
最小线程数 |
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密集型压测结果
读写模式 |
表数目 |
表大小 |
最大线程数 |
最小线程数 |
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 |
(1)计算密集型压测结果
读写模式 |
表数目 |
表大小 |
最大线程数 |
最小线程数 |
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密集型压测结果
读写模式 |
表数目 |
表大小 |
最大线程数 |
最小线程数 |
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 |
(1)计算密集型压测结果
读写模式 |
表数目 |
表大小 |
最大线程数 |
最小线程数 |
128线程QPS |
1线程QPS |
oltp_read_only |
10 |
10000000 |
128 |
1 |
85244.76 |
5638.32 |
oltp_read_write |
10
网站题目:我在真实场景下对几款主流云原生数据库进行极限性能压测的一次总结!!!
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等 声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联 猜你还喜欢下面的内容
|