MySQL代表了开源数据库的快速发展。
从2004年前后的Wiki、WordPress等轻量级Web 2.0应用起步,到2010年阿里巴巴在电商及支付场景大规模使用MySQL数据库,再到2012年开始阿里云RDS for MySQL为成千上万家客户提供可靠的关系数据库服务,阿里云RDS积累了来自内外部功能、性能、安全方面的众多需求,打造了面向企业场景的AliSQL分支,包含了丰富企业级数据库特性:
DynamicThreadPool(DTP):在内核中动态管理数据库线程池,通过有限资源持续支撑大量创建数据库连接请求,维持高效稳定的请求处理能力。
IndexMutexTuning(IMT):通过IMT优化大大降低索引节点分裂成本,大大提升类TPCC场景处理能力,在全内存的测试中,单机达到了39W的TpmC,相对于原生版本提升35-50%不等。
TDE&SM4:全新优化的TDE数据加密,并且支持国产加密算法SM4。
PerformanceInsight:针对数据库SQL性能扩展多方面信息,包括表统计信息、索引统计信息、SQL单次性能数据、IO统计信息和关键性能数据输出等。
AsyncFilePurge:优化大表删除,有效降低系统IO抖动影响。
SlowLogRotate:对慢日志设计切换机制,可有效降低大量慢日志造成的不稳定影响。
SQLOutline:通过Hint优化SQL语句执行计划,可保障在各种环境变化中SQL执行计划不变,如大版本升级、统计信息变更等。
StatementConcurrencyControl(SCC):DBA可通过SCC干预系统语句执行,对具体SQL限流控制并发度,紧急状态保障数据库稳定运行。
DDLRecycleBin:内核中增加回收站,防止误执行DROPTABLE/TRUNCATE TABLE造成的不可挽回的损害。
AWS作为全球云市场的标杆,是其他云厂商不断追赶的目标。十年磨一剑,阿里巴巴MySQL数据库历经十年的发展后,阿里云RDS MySQL和AWS RDS相比,性能上谁会更胜一筹?本文将一测究竟。
01、测试概述
本测试对比了阿里云RDS通用型实例(5.7/8.0版本)和AWS RDS通用T3型实例,在OLTP读写混合模型下的性能。测试使用了标准的sysbench 1.0工具,选择的规格是8核32GB规格数据库。测试场景选用的是内存命中型场景,250张表,每张表25000行数据。
测试结论是用同规格下性能最好的T3型AWS RDS 5.7/8.0和阿里云对应版本的RDS通用型实例对比,阿里云RDS通用型实例有绝对的优势,读写混合场景峰值QPS比AWS RDS高80%左右。
02、测试环境
(*点击查看大图)
AWS RDS通用型实例分为四种类型
https://aws.amazon.com/cn/rds/instance-types/,
前期实测下来,相同CPU核数和内存规格的情况下,T3型实例性能最好。选用的规格是t3.2xlarge,8个vCPU。
AWS RDS的主备同步不依赖binlog。同步方式的说明见:
https://aws.amazon.com/cn/blogs/database/amazon-rds-under-the-hood-multi-az/。
跨AZ的情况下,AWS RDS是同步写,所以对比测试中,阿里云RDS选用多可用区+半同步开启+默认严格参数模板。
03、测试数据
3.1 RDS 5.7读写混合场景
在不同并发条件下,阿里云RDS 5.7均较AWS性能占优。
阿里云RDS 5.7的峰值QPS比AWS高80.41%
(*点击查看大图)
3.2 RDS 8.0读写混合场景
在不同并发条件下,阿里云RDS 8.0均较AWS性能占优。
阿里云RDS 8.0的峰值QPS比AWS高77.88%
(*点击查看大图)
04、总结和展望
通过上述测试数据可以看出,阿里云RDS通用型实例相比于AWS RDS有较大的优势。阿里云数据库RDS MySQL在2020年将继续快速奔跑,除了性能以外,将继续围绕企业诉求,构建数据库核心能力,覆盖安全、可靠性、可用性、可扩展性等诸多方面。
Gartner预计,到2021年,云数据库在整个数据库市场中的占比将首次达到50%;而到2023年,75%的数据库要跑在云平台之上。
去年11月,国际知名调研机构Gartner公布2019年全球数据库魔力象限评选结果,阿里云成功进入“挑战者”象限,连续两年作为唯一的中国企业入选。
根据Gartner 统计数据,阿里云已经位居全球云数据库市场份额第三位以及中国市场第一位,年增长率达到116%。目前,已有超过40万个数据库实例迁移到阿里云上,包含政务、零售、金融、电信、制造、物流等多个领域的龙头企业。
只有保持一路快跑的势态,才能在日益严峻的竞争环境中持续领先,才能满足云上企业快速增长需求。阿里云数据库RDS MySQL一直走在前列。