作者:阿里云数据库RDS产品部 王涛(花名:改天)
引子
最近很多客户在困惑如何选择一个合适的数据库,其实这个和业务场景、使用场景、并发等有密切的关系。本文通过RDS的基础知识介绍,希望你对RDS产品有一个基础的了解。文末有最佳实践,做相关的案例解析。
RDS背景介绍
很多技术同学对MySQL、SQL Server、PostgreSQL、MariaDB等数据库如数家珍,但是说起「RDS」这三个字母的缩写,很多人未必知晓。百度百科对「RDS」词条是这样解释的:
- RDS是关系型数据库服务(Relational Database Service)的简称,是一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务。
- 具有多重安全防护措施和完善的性能监控体系,并提供专业的数据库备份、恢复及优化方案,使您能专注于应用开发和业务发展。
通过上面的词条,我们清晰的知道RDS就是一个数据库服务,而且用户只需要购买对应的服务即可,使得开发人员能够更好的关注自己业务开发。无需过多的关注自己服务,数据库服务随时在线。
但是RDS的特性不仅仅在此,RDS基本上等同于云上数据库的标准代表。RDS 与社区保持着高度兼容性,同时在安全、性能、服务等方面有重大的提升。
阿里云RDS产品类型介绍
时至今日,阿里云RDS已经包含了MySQL、SQL Server、PostgreSQL、MariaDB四大数据库产品种类以及一个通用服务DBProxy(MaxScale)。
今天小编对RDS数据库产品做一个大致介绍,明确各个引擎与社区的兼容性以及阿里云RDS的特性。
RDS MySQL
RDS MySQL有和社区保持一致的大版本5.6/5.7/8.0。同时AliSQL是阿里云深度定制的独立MySQL分支,除了社区版的所有功能外,AliSQL提供了类似于MySQL企业版的诸多功能,同时提供了企业级的安全、备份、恢复、监控、性能优化、只读实例等高级特性。AliSQL在功能、性能、稳定性、安全等方面进行了诸多优化创新,典型的有:
- Thread Pool:实现Listener-Worker处理模型,提升AliSQL的连接能力,并能够针对不同类型的操作进行并发优化,使RDS数据库在高连接大并发情况下始终保持高性能。
- Statement Outline:当遇到数据变化、增减索引、参数变更等情况时,SQL执行计划会发生改变,导致数据库不稳定,阿里云利用Optimizer Hint和Index Hint让MySQL稳定执行计划。
- Fast Query Cache:针对原生MySQL Query Cache的不足,阿里云进行重新设计和全新实现,推出Fast Query Cache,优化并发控制、内存管理和缓存机制,能够有效提高数据库查询性能。
- Binlog in Redo:Binlog in Redo功能指在事务提交时将Binlog内容同步写入到Redo Log中,减少对磁盘的操作,提高数据库性能。
- Faster DDL:RDS内核团队进行分析后发现MySQL在DDL操作期间的缓存维护逻辑存在性能缺陷,通过深入分析及多次测试,开发Faster DDL功能,优化了Buffer Pool页面管理策略,大幅减少DDL操作导致的锁争用,让您的实例在正常业务压力下可以安心执行DDL操作。
RDS PostgreSQL
RDS PostgreSQL有和社区保持一致的大版本10/11/12/13/14。同时AliPG从2015年开始就已经基于社区版本做功能演进和技术迭代。AliPG在功能、性能、稳定性、安全等方面做了诸多优化,典型的有:
- 更快速度
- 图像识别、向量相似搜索场景,相比通用解决方案提升上万倍性能。实时营销、用户画像,相比通用解决方案提升上千倍性能。
- GIS MOD移动对象处理,相比开源PostGIS,性能提升50倍。
- 更稳定性能
- 针对性优化平台即服务(PaaS)的多租户(schema)场景,帮助传统软件实现从售卖License到售卖订阅服务的转型,支持大量元数据,优化连接、优化资源隔离,单个实例可支持上万租户。
- 更高安全性
- 通过中国、国际安全标准认证,助力企业提升在融资、上市阶段的机构安全评分。
- 安全加固
- 对动态视图、共享内存、dblink、历史命令、审计日志等包含密码的敏感信息进行加密。
- 修补社区版本函数问题。
- 支持全加密云数据库。
- 新增半同步模式,支持自主配置最大保护、最高可用、最高性能等实例保护级别。
- 支持逻辑复制槽故障转移(Logical Replication Slot Failover),在使用逻辑复制功能时, 主备切换不影响逻辑复制可靠性。
RDS SQL Server
RDS SQL Server支持2008 R2/2012/2014/2016/2017/2019等大版本,同时拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License授权,减少额外支出。RDS SQL Server还提供如下高级功能:
- 云盘加密:基于块存储对整个数据盘进行加密,即使数据备份泄露也无法解密,最大限度保护您的数据安全。而且加密不会影响您的业务,应用程序也无需修改。
- 只读实例:在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,您可以创建一个或多个只读实例,利用只读实例满足大量的数据库读取需求,增加应用的吞吐量。
- 读写分离:创建只读实例后,您可以开通只读地址,然后在应用程序中配置主实例地址和只读地址,可以实现写请求转发到主实例,读请求转发到只读地址,只读地址会根据权重将读请求自动转发给各个只读实例。
RDS MariaDB
RDS MariaDB基于MariaDB提供企业级性能,当前主要支持的版本为10.3;在数据库运维管理方面,基本上和MySQL同步。
MariaDB国内受众面比较少,技术人员普遍更喜欢业界通用的MySQL。
RDS DBProxy(MaxScale)
RDS MySQL数据库代理又分独享代理和共享代理,是位于数据库服务端和应用服务端之间的网络代理服务,用于代理应用服务端访问数据库时的所有请求,具有高可用、高性能、可运维、简单易用等特点。独享代理还提供自动读写分离、事务拆分、连接池等高级功能。
阿里云RDS产品系列介绍
今天很多客户其实有疑问,RDS产品系列这么多,它们之间的区别是什么?千言万语,直接用一张图就能清晰的表达。
RDS 基础版
RDS基础版由于只有一个节点,由于没有备库,所以稳定性和硬件,数据库本身有关。但是特点就是费用相对便宜。
RDS 高可用版
高可用的拓扑图用户可以自定义,目前RDS高可用版有一个备节点随时作为Standby可以进行切换,保证数据库的可用性。同时一个主实例下面可以挂N个只读(具体每个产品有自己限制)。
RDS MySQL 三节点企业版
三节点企业版内部采用paxos协议保证数据一致性,可以做到RPO=0。
本文最佳实践
Q:如果仅仅是开发测试环境使用的,该选择哪个产品系列?
A:应该选择RDS基础版,因为性价比高,但缺点是无法HA,用于开发测试环境可以接受。
Q:生产环境使用的数据库,该选择哪个产品系列?
A:建议选择RDS高可用版 或者 RDS三节点企业版,因为该产品有standby,可以快速的做机器故障failover。在故障发生的时候,可以帮助业务快速恢复。
Q:业务是一个对GIS有强需求的系统,该选择哪个数据库产品类型?
A:PostgreSQL数据库对GIS类的需求支持很好,而且有很多高精度的GIS需求客户在使用PostgreSQL数据库进行相关研发工作。
Q:计划用于生产的一套管理系统,该如何选择?
A:目前业界比较通用的是MySQL引擎,由于是生产系统对稳定性有一定的要求,建议选择高可用版或者RDS三节点企业版。
Q:假设我的数据库有1W TPS,这个该如何选择?
A:这个涉及到实例具体规格,存储等选型,后面会有专题做相关介绍。
本文总结
本文主要介绍RDS的含义,以及阿里云RDS产品类型、产品系列,以及在实际的工作中如何选择对应的数据库产品、系列。希望本文对你选择RDS数据库有一定的帮助!
同时目前阿里云数据库对部分规格数据库有优惠活动,欢迎点击免费数据库_阿里云数据库_MySQL_Redis_SQL Server_MongoDB-阿里云进行选购!