国内三大云数据库测试对比

导读 腾讯云数据库提供了可视化的运维操做页面和自动备份的能力,下降了数据库运维的门槛。同时云数据库还支持高可用架构,对数据的安全性和服务的可靠性更有保障。另外有的云数据库厂商还提供了诸如数据库审计、慢查询分析、数据回档等能力,大大减轻了数据库运维和 DBA 的工做量。

我司 CTO 和技术总监都是腾讯系的,因此咱们一开始就选用腾讯云的服务。他们家的云数据库提供了可视化的运维操做页面和自动备份的能力,下降了数据库运维的门槛。同时云数据库还支持高可用架构,对数据的安全性和服务的可靠性更有保障。另外有的云数据库厂商还提供了诸如数据库审计、慢查询分析、数据回档等能力,大大减轻了数据库运维和 DBA 的工做量。程序员

其实咱们就没有专门的 DBA,都是开发本身上去折腾,经过把数据库的可靠性外包给云端,确实极大地下降了咱们的工做量,这一点仍是挺爽的。可是在具体的使用过程当中,发现仍是有些地方不够满意,好比 MySQL 最高版只有5.6,无法用上 5.7.8+ 新增的 JSON 字段;创建数据库自带的只读从库门槛较高(要最高版本);binlog 的备份不方便;数据库受权上的坑(没有FILE和SHUTDOWN权限,不能grant all on *.*)等。数据库

记得之前对比过阿里云和 UCloud 的云主机磁盘 IO(那时候腾讯云好像才刚起步呢),这么久过去了,再来比比看,他们的云数据库怎么样。国内目前就只有这三家还算比较能入眼吧,网易和百度的就先跳过,都没据说谁家在用。另外那个 X 云就算了,期权都能黑下来的公司,估计也活不了多久。缓存

此次除了对比性能,顺便再看看价格。安全

在测试开始以前先打个预防针:如下的测试可能比较粗糙,并非针对实际业务进行的,因此结果仅供参考,仅表明做者本人的观点和使用场景。并且实际的业务每每并非以性能为惟一考量标准,公司的一整套业务须要多项云服务的支撑,最基础的主机、数据库、NoSQL、对象存储、负载均衡等服务这几家都比较完善了,可是在增值、附加服务上各有优劣、亮点,实际选型仍是应该根据业务特色仔细考量。服务器

性能

首先最重要的,是云数据库的读写性能。我在规划实例的配置时,主要考虑下面 2 点:架构

  • 首先,云数据库要使用 SSD 硬盘,这样可以保证数据库服务器的 IO 尽可能的快
  • 其次,云数据库的内存要尽量大,这样有尽量多的数据可以被缓存,提升读写速度

所以我选择的数据库配置以下:硬盘 300GB SSD,内存 8GB 左右。因为每一个云平台提供的配置都不相同(腾讯云的内存和磁盘比例是限定的,UCloud 的内存没有 8G 等等),我在三个云平台上分别申请了以下配置的云数据库进行性能测试:负载均衡

国内三大云数据库测试对比

因为实际状况下,云数据库通常是经过云服务器进行访问的,所以我在这 3 个平台分别申请了配置差很少的云主机,在上面运行性能测试。我申请的云主机的操做系统都是 64 位 CentOS 6.5,具体的配置以下:运维

国内三大云数据库测试对比

如今比较流行的测试数据库工具是 sysbench,为了和实际使用的状况吻合,我对 sysbench 作了参数上的修改。工具

通常来讲,读操做要远远多于写操做,而且有不少操做是须要范围查找和排序的,因此我在测试中提升了读操做的比例,特别是提升了范围查找和排序的比重。性能

同时,对于写操做,稍微提升了 update 操做的比例。最终运行的测试中,每个事务的读操做和写操做的比例是 6:1 左右。为了模拟项目启动以后的场景,个人 sysbench 测试集的数据量是总共 20 张表,每张表 200 万行数据,开启 32 个线程,并行向数据库发送事务请求,共运行 30 分钟。下面是我观察到的结果:

国内三大云数据库测试对比

把这个测试结果作成图表是这个结果:

国内三大云数据库测试对比

这个性能测试结果大大出乎个人意料,虽然 UCloud 的数据库界面看上去和阿里云和腾讯云相比比较朴实,产品介绍中也介绍的相对简单,可是,性能上的优点让我吃惊。说实话,本身测试以前,我没想到 UCloud 有如此大幅领先的性能。从测试结果分析,UCloud 比阿里云高了 422%,比腾讯云高了 297%。并且,这仍是在 UCloud 云数据库的内存不如其它 2 家大的状况下的结果(UCloud:6G 内存,阿里云和腾讯云:8G 内存)。

这个数据让我对 UCloud 的 SSD 云数据库性能十分动心,要知道,这个是我没有作过任何调优,开箱即用的配置,彻底符合我对于云数据库“快速部署,性能满意”的指望。

如下是测试结果的截图,从上到下分别是 UCloud 的 UDB,阿里云 RDS 和腾讯 CDB:

国内三大云数据库测试对比

UCloud 的 UDB

国内三大云数据库测试对比

阿里云 RDS

国内三大云数据库测试对比

腾讯云 CDB

价格

看过了性能以后,我又顺便分析了一下价格,貌似阿里云和 UCloud 的价格是线性关系的。阿里云根据内存,CPU 和磁盘订价,而 UCloud 根据内存和磁盘订价,CPU 免费。腾讯云的配置只有几档,每一档根据内存和磁盘来订价,内存和磁盘的排列是固定的,不是简单的线性关系。所以,我计算出了阿里云和 UCloud 的价格因素的计算常数,而后以腾讯云的配置为基础,分别推算了 3 个厂商在同等条件下的价格,能够获得三个厂商的订价趋势图以下:

国内三大云数据库测试对比

其中,腾讯云的价格是最便宜的,只是磁盘和内存的比例是固定的;UCloud 的价格比腾讯云略贵,而阿里云比其它两家要高出40% 左右的价钱。这多是由于阿里云主备架构的关系;不过,我发现 UCloud 的普通版 UDB 和高可用版 UDB 几乎是一个价钱,也就是说,若是考虑主备架构的高可用版云数据库,UCloud 的高可用版实例的价格比阿里云要低 40%。仔细看了下,貌似 UCloud 的高可用数据库最近在进行促销,因此才会这么划算,也就是说趁活动期间购买的话能够省一大笔钱。惋惜咱们用的是腾讯云……

总结

阿里云的文档很是全,并且详细。不少信息均可以经过文档来获取。并且它的 MySQL 在线管理工具很强大,就是创建数据库的时候比较麻烦,仍是要去界面上申请创建数据库,价格较贵。

腾讯云虽然没有阿里云的 RDS 作的那么完善,也还算易用。他们使用 PHPMyAdmin 来管理数据库,对于熟练这套工具的开发人员可能比较容易上手。价格较便宜。

UCloud 云数据库测出的 TPS 和 QPS 性能远高于业内平均水平。并且产品易用性好,价格适中。

综上所述,性价比最高的云数据库是 UCloud 的 UDB。

额外再提一句,对于名列在程序员最讨厌两件事之一的“写文档”,在查看 3 个厂商的数据库产品介绍时,感受阿里云和腾讯云的产品介绍作的很好,里面有各类解决方案的架构,很是贴心。并且云数据库和云主机自建数据库的区别也讲得很直观;而 UCloud 的 UDB 介绍比较简单,还须要进一步提升。

本文仅表明我的观点,若有意见和建议,欢迎探讨。

相关文章
相关标签/搜索