云原生 - 自建数据库 VS 云数据库,到底怎么选?

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
简介: 云原生 - 自建数据库 VS 云数据库,到底怎么选?

最近在学习数据库相关知识,经常跟一个在某金融公司做DBA的大学朋友交流问题。听说他们公司最近在使用云数据库,我立马来了兴趣,以前只听说过云主机,没想到数据库这种产品也可以在云上买。正好最近在学习使用sysbench,索性我就买了腾讯云数据库(因为他们家的可以按量付费,用完了就释放掉哈哈),配合自己购买的腾讯云主机进行一个对比测试。下面就贴出测试过程和结果,仅供大家参考。

测试过程

在本次测试中,我使用sysbench对三种配置分别进行oltp场景的基准测试。sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具生成,不要求真实。这里的Oltp(On-Line Transaction Processing)即面向事务的处理过程,也是mysql的主要应用场景,在这里我们选用sysbench的读写混合脚本进行测试。

下面给出本次测试的详细配置:

我们使用sysbench创建20张表,每个表插入10000000条数据。每个配置的下测试1200秒,每10秒进行一次采样,重复两次取平均值作为参考。

Sysbench指令如下:

sysbench --db-driver=mysql --mysql-user=root --mysql-password=xxxx --mysql-db=test_sysbench --table_size=10000000 --tables=20 --threads=100 --events=0 --time=1200 --report-interval=10 /usr/share/sysbench/oltp_read_write.lua run

在测试自建数据库的时候我们需要安装MySQL、安装Sysbench,具体的方法可以参考相关系统的教程。需要注意的是,在使用云数据库的时候,需要一台机器远程连接,为了排除网络波动对测试结果的影响,这里我使用的就是测试用的CVM,将CVM和云数据库放置在同一网络区域下(同一VPS下),则可以通过内网IP建立连接,此时的网络不会成为测试瓶颈。此外我们要注意,在测试的时候保证CVM的配置大于等于云数据库的配置,可以先讲CVM测试完,提升到8核32G再去测试云数据库。

我们测试的配置主要为4核8G、8核32G三种配置,分别对比不同配置下MySQL云数据库和同配置CVM上的性能指标,主要对比的指标有QPS、TPS。

测试结果

漫长的测试完成之后,就是结果揭晓的时刻了。我们首先来看一下CVM4核8G的测试结果:

从测试结果可以看出,MySQL5.7的性能还是非常惊艳的,在混合读写的场景下,随着并发数的增加,QPS保持着上升趋势,在200并发的时候QPS高达40000,TPS也保持在2020,随后随着并发数的增加TPS迅速降低。

我们再来看一下,同等配置下的腾讯云MySQL是怎样的表现:

我走,20并发的时候QPS已经到了惊人的55000,在50的时候更是高达70000,基本是秒杀啊,我们来直观的看一下不同并发下二者的QPS对比。

可以看出,在8核32G性能下,趋势变化与4核基本相同,但在500并发下,云数据库依然保持了60000+的QPS,TPS保持在2091,而同配置下的自建Mysql此时已经降到了78。

测到这里,我们可以得出结论:在并发数较低的情况下(并发数50以内),MySQL的混合读写性能保持在较高的线性增长,在50线程时,云数据库MySQL的性能达到峰值,高达11w的QPS,5480的TPS,在50-200并发数云MySQL和自建MySQL变化平缓,自建MySQL稳定在4w-5w,云MySQL维持在10w-11w,在并发数达到500时二者性能下降明显。

总的来说,在200以内并发云数据库MySQL性能达到了同等配置自建数据库的两倍,看来腾讯云的研发小哥哥们还是做了大量的参数优化来提升数据库对硬件配置的性能利用。

在测试中有一个很惊喜的发现,使用腾讯云MySQL数据库自带的性能监控指标就可以直观的看历史监控结果啦。

怎么样,很直观有没有,高大上有没有。除了QPS和TPS之外还有其他很多很多参数指标,可以随意拖动时间,可以任意合并数据,效果如下:

哇,比起一个个记录测试数据再画图,使用腾讯云数据库的监控真的方便太多了。朋友告诉我除了监控,还有备份回档、监控、快速扩容、数据传输这么多特性。我好奇的上官网比较了一下我测的这两种配置的云主机和云数据库价格对比:

4核8G云主机: 10M带宽 488元/月 、200M带宽9380元/月

4核8G云数据库:652元/月 默认200M带宽

8核32G云主机:200M带宽 200G磁盘容量 9550元/月

8核32G 云数据库:200M带宽 200G磁盘容量 2317元/月

总结

原来云数据库在高出这么多性能,多了一堆特性功能之后,居然还拥有这么高的性价比,8核32G同等带宽的情况下云主机价格居然是云数据库的4倍。所以推荐需要专业数据库服务的同学,尤其是对性能和带宽要求较高的同学,购买腾讯云数据库可以帮你们省一大笔钱哦。对于跟我一样穷到吃土也想使用学习数据库的同学,强烈建议使用按量付费。反正每小时几块钱,价格划算童叟无欺。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
10月前
|
存储 缓存 数据库
数据库数据删除策略:硬删除vs软删除的最佳实践指南
在项目开发中,“删除”操作常见但方式多样,主要分为硬删除与软删除。硬删除直接从数据库移除数据,操作简单、高效,但不可恢复;适用于临时或敏感数据。软删除通过标记字段保留数据,支持恢复和审计,但增加查询复杂度与数据量;适合需追踪历史或可恢复的场景。两者各有优劣,实际开发中常结合使用以满足不同需求。
994 4
|
存储 数据采集 数据挖掘
CSV vs 数据库:数据存储的最佳选择是什么
本文介绍了爬虫数据存储中CSV和数据库的优缺点,分析了两者在不同场景下的适用性。CSV简单易用、资源消耗低,适合小量数据;数据库则在处理大量数据和复杂查询时表现出色,支持并发操作。通过Python代码示例,展示了如何使用多线程和爬虫代理IP技术将百度搜索数据存储到MySQL数据库中,适用于大型项目和复杂数据分析需求。
816 2
|
缓存 物联网 数据库
InfluxDB vs TDengine :2025 年了,谁家用的数据库还不能高效读缓存?
在工业互联网和物联网的大数据应用场景中,实时数据的写入和查询性能至关重要。如何快速获取最新设备状态并实时处理数据,直接影响到业务的高效运转。本文将深入分析 TDengine 和 InfluxDB 在缓存机制上的差异,帮助读者更好地理解这两款主流时序数据库在性能优化方面的优劣。
1153 1
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
693 4
|
Cloud Native 数据库 开发者
云原生数据库2.0问题之帮助阿里云数据库加速技术更新如何解决
云原生数据库2.0问题之帮助阿里云数据库加速技术更新如何解决
|
SQL 数据库 Java
HQL vs SQL:谁将统治数据库查询的未来?揭秘Hibernate的神秘力量!
【8月更文挑战第31天】Hibernate查询语言(HQL)是一种面向对象的查询语言,它模仿了SQL的语法,但操作对象为持久化类及其属性,而非数据库表和列。HQL具有类型安全、易于维护等优点,支持面向对象的高级特性,内置大量函数,可灵活处理查询结果。下面通过示例对比HQL与SQL,展示HQL在实际应用中的优势。例如,HQL查询“从员工表中筛选年龄大于30岁的员工”只需简单地表示为 `FROM Employee e WHERE e.age > 30`,而在SQL中则需明确指定表名和列名。此外,HQL在处理关联查询时也更为直观易懂。然而,对于某些复杂的数据库操作,SQL仍有其独特优势。
392 0
|
关系型数据库 MySQL 数据库
探究数据库开源协议:PostgreSQL vs MySQL
探究数据库开源协议:PostgreSQL vs MySQL
|
Cloud Native 数据管理 关系型数据库
【阿里云云原生专栏】云原生数据管理:阿里云数据库服务的分布式实践
【5月更文挑战第21天】阿里云数据库服务在云原生时代展现优势,应对分布式数据管理挑战。PolarDB等服务保证高可用和弹性,通过多副本机制和分布式事务确保数据一致性和可靠性。示例代码展示了在阿里云数据库上进行分布式事务操作。此外,丰富的监控工具协助用户管理数据库性能,支持企业的数字化转型和业务增长。
397 1
|
关系型数据库 MySQL 测试技术
《阿里云产品四月刊》—瑶池数据库微课堂|RDS MySQL 经济版 vs 自建 MySQL 性能压测与性价比分析
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
234 0
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之在云数据仓库ADB中,GROUP BY操作中出现NULL值,如何解决
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。