阿里云关系型数据库产品全家桶
2021-02-19 19:02:00 3 举报
AI智能生成
阿里云所有关系型数据库产品的要点总结
作者其他创作
大纲/内容
关系型数据库
基础知识
什么是关系型数据库?
采用了关系模型来组织数据的数据库
ACID
关系型数据库经常被用来作为OLTP数据库
评价OLTP数据库性能的三个维度:并发度、数据存储、复杂SQL响应时间
关系型数据库优缺点
优点
二维表结构贴近现实世界中的概念
通用的SQL语言使得操作关系型数据库非常方便
缺点
为了维护一致性所付出的巨大代价就是其读写性能比较差
固定的表结构
海量数据场景难以高效率读写
垂直拆分
特点
每个库(表)的结构都不一样
每个库(表)的属性至少有一列交集,一般是主键
垂直分库
把并发读写压力大的表拆分出来,放到另外的数据库中
能够根据业务场景进行优化
垂直分表
适用于那种字段比较多的表
将长度较短、访问频率较高的字段尽量放在一个表里,这个表称为主表(实践中通常只有一个主表)
将字段较长、访问频率较低的字段尽量放在一个表里,这个表称为扩展表或从表
因为数据库缓冲池里的Row更短,那就能缓存更多的数据,最终带来一定的性能提升
部分业务表无法join,应用层需要一定的改造
垂直拆分适合单表千万条数据量级别。单库中的数据量为海量(数亿条及以上)的读写问题依然没有得到有效的解决
这时候就还需要再进行水平拆分,实现单表亿级数据时的高性能读写
垂直拆分其实和微服务概念有点相似,方便解耦之后的管理及扩展
水平拆分(分库分表)
对于海量数据,在垂直拆分后需要通过一定的计算或路由规则水平拆分数据,实现将大表数据分散到多个小表或数据库
每个表的结构都一样
每个表的数据都不一样,没有交集
库内分表
把一张大表分散为库内的几个小表。例如分区表技术
分库分表
在库内分表的基础上,将拆分的小表转移到不同的主机和数据库上。可以充分的使用其他主机的计算资源。例如分片(Sharding)技术
优点
水平拆分理论上能无限扩展
应用侧的改动较小,不需要根据业务来拆分
可以将热点数据打散,较好的应对高并发
缺点
需要增加一层路由的计算。即不带分片键查询时会产生全表扫描,没有明显性能提升
跨库join的性能比较差
要处理分布式事务的一致性问题
PolarDB 系列
产品简介
阿里巴巴自主研发的云原生分布式数据库
PolarDB有三个独立的引擎,分别100%兼容MySQL、高度兼容Oracle语法、100%兼容PostgreSQL
PolarDB的集群地址支持的一致性级别
最终一致性:不论是同一会话(连接)或不同会话,最终一致性都不保证读能够马上读到刚插入的数据
会话一致性:一定能够读到同一会话插入之后的读数据
全局一致性:保证同一会话和不同会话都能够读到最新数据
说明
一致性等级越高,性能越差,对主库的压力越大,请谨慎选择
对于大多数应用场景会话一致性能够保证业务正常工作
对于少数有强一致性的需求的语句,可以通过Hint /* FORCE_MASTER */来实现
PolarDB MySQL版
特点
100%兼容开源MySQL和RDS MySQL。 计算能力最高可扩展至1000核以上,存储容量最高可达 100TB
锁机制和社区版MySQL存在差异
社区版MySQL会将DDL中涉及到的Exclusive MDL锁同步到读节点上(同样通过Redo日志),并且使读节点持有MDL锁直到DDL操作结束,来阻止读节点上其它用户线程在DDL执行过程中访问表数据
与社区版MySQL不同,PolarDB MySQL的主节点和读节点是基于共享存储的,这会导致主节点在做DDL的时候,读节点可能会查询到DDL过程中的中间数据而出现错误
场景
互联网企业使用PolarDB、Redis、SLB搭建高弹性系统架构
计费
计费项
计算节点(主节点和只读节点),费用约占65%
计费项概览
存储空间,即数据文件、索引文件、日志文件(在线日志和归档日志)和临时文件等占用的空间。费用约占30%
数据备份(仅超出免费额度时收费)
SQL洞察(可选)
全球数据库网络GDN(可选)
低成本
计算与存储分离,每增加一个只读节点只收取计算资源的费用,而传统的只读节点同时包含计算和存储资源,每增加一个只读节点需要支付相应的存储费用
若数据量较大,推荐购买存储包进行抵扣
若业务波动频繁且波动量大,推荐购买PolarDB 计算包计算包(单位为度)
PolarDB-X
融合分布式SQL引擎DRDS与分布式自研存储X-DB
兼容MySQL生态
支撑千万级并发规模、百PB级海量存储
海量数据存储、超高并发吞吐、解决大表瓶颈
水平拆分
复杂SQL的处理
例如需要执行多表JOIN、多层嵌套子查询、Grouping、Sorting、Aggregation等组合的SQL语句
单机并行处理器(SMP)
集成在PolarDB-X内核中
多机并行处理器(DAG)
通过构建一个计算集群 ,能够在运行时动态获取执行计划并进行分布式计算,通过增加节点提升计算能力
对超高并发和大规模数据存储有较高要求的互联网在线事务类业务场景
传统大型企业级应用(eg. 金融)因业务发展导致计算量与数据量呈爆发式增长,急需具备更强计算能力的在线事务型数据库场景
架构
1.0中间件形态
由计算层DRDS实例与存储层私有定制RDS实例组成
通过挂载多个MySQL进行分库分表水平拆分
2.0一体化形态
由多个节点构成,实例内部署多个节点进行水平扩展,每个节点闭环整合计算资源与存储资源
运维管理更加便利
PolarDB-O
高度兼容Oracle语法
分钟级弹性:弹性扩展(配置升降级、增减节点)时间为5分钟
快速弹性,应对不确定的业务增长
分布式块存储设计和文件系统,支持100TB级别数据
集群包含1个主节点和最多15个只读节点,满足高并发场景对性能的要求,尤其适用于读多写少的场景
读一致性、毫秒级延迟(物理复制)、无锁备份、秒级的故障恢复
客户之前使用Oracle数据库,但存在扩展或者性能瓶颈
限制
存在文件个数上限
例如polar.o.x4.medium 规格的文件个数上限为1048576
文件个数上限包括用户表文件、数据库系统表文件(大约1000个)、日志文件等。一个普通的PolarDB表(非分区表)占用3个文件
数据库的root权限
不提供superuser权限,但提供polar_superuser权限。它是superuser权限的子集
PolarDB混合云版
数据库一体机,可部署到本地私有化 IDC 机房
提供高度兼容 Oracle 的能力
内置的阿里云自研 Ganos 时空 SQL 引擎,适合政企、交通、航运、金融等行业下一代的 5G+IoT 实时 OLTP 业务系统
RDS MySQL 版
基于阿里巴巴的MySQL源码分支,经过双十一高并发、大数据量的考验
只读实例
数据库有少量写请求,但有大量读请求的应用场景
可以创建一个或多个只读实例。最多10个(内存<64GB 时最多创建5个只读实例)
创建只读实例时会从备实例复制数据(即不会影响主实例性能)。主实例的数据更新也会在主实例完成操作后立即自动同步到所有只读实例
只读实例和主备实例在同一地域,可以在不同可用区
建议只读实例规格不小于主实例规格,否则易导致只读实例延迟高、负载高等现象。
只读实例创建时会自动复制其主实例的白名单信息,但只读实例和主实例的白名单是相互独立的
创建并设置读权重后就会持续提供服务
读写分离
只读实例的基础上额外提供了一个读写分离地址,联动主实例及其所有只读实例,创建自动的读写分离链路
备份实例
备实例和主实例在同一个地域
支持创建1~2个:高可用版1个,三节点企业版(原金融版)2个
主实例正常运行时,备份实例不会提供服务
灾备实例
灾备实例和主备实例在不同地域
主实例和灾备实例均搭建主备高可用架构
通过数据传输服务(DTS)实现主实例和异地灾备实例之间的实时同步
创建灾备实例会同时产生RDS和DTS两种费用
提供独立的数据库连接地址,由用户应用端自助控制连接
提供独立的白名单配置、账号管理
主实例正常运行时,灾备实例不会提供服务
分析实例
将RDS MySQL主实例中的数据自动同步到MySQL分析实例中,解决RDS MySQL复杂分析查询卡顿问题
MySQL分析实例的复杂分析性能约为MySQL的100倍
构建实时数据仓库成本太高,公司留给数据分析预算有限
进行复杂分析查询时,经常会出现查询卡顿。只读实例只能分担读压力,无法从根本上解决复杂分析慢的问题
AnalyticDB for MySQL集群的费用
DTS费用
使用限制
RDS MySQL提供主备复制架构(基础版除外),其中的备(slave)实例不对用户开放,用户应用不能直接访问。
存储引擎仅支持InnoDB引擎
只能在主实例内创建只读实例,不能将已有实例切换为只读实例
只读实例的参数不继承主实例上的参数设置,会生成默认的参数值,可以在只读实例的控制台上进行修改
设置了延时复制的只读实例,无法添加到读写分离中,需要修改为0才可以添加
灾备实例不支持备份、恢复、数据迁移、数据库管理、申请外网访问地址、修改连接地址功能
删库操作不会同步至灾备实例,需要登录灾备实例通过SQL命令手动删除
灾备实例当前仅支持按量付费,不支持包年包月
产品系列
基础版
单节点,计算与存储分离,性价比高
高可用版
推荐购买。一个主节点和一个备节点,经典高可用架构
企业版
即三节点企业版(原金融版):一个主节点和两个备节点,位于同一地域的同一可用区或不同可用区,提供金融级可靠性
实例规格
通用规格(入门级)
独享被分配的内存和I/O资源,与同一服务器上的其他通用型实例共享CPU和存储资源
独享规格(企业级)
独享或独占型的实例规格。独享型指独享被分配的CPU、内存、存储和I/O资源
独占型是独享型的顶配,独占整台服务器的CPU、内存、存储和I/O资源
专属规格
完全独享虚拟主机或物理主机资源,开放主机权限,可直接在主机上按需分配多个数据库实例
计费方式为包年包月。只需为主机付费,专属集群和RDS实例不收费
RDS SQL Server 版
包含了微软的License费用
不支持使用客户自己的License
其他限制
为保障实例的稳定及安全,云数据库SQL Server有部分使用上的约束
一个主节点和一个备节点,经典高可用架构
集群版
一个主节点和一个备节点的高可用架构,支持最多七个只读实例,横向扩展集群读能力
RDS PostgreSQL 版
PostgreSQL的优点
主要集中在对SQL规范的完整实现以及丰富多样的非结构化数据类型支持,包括JSON数据、IP数据和GIS几何数据等
eg. 地理相关的功能,PostGIS堪称神器,千行代码才能实现的复杂地理需求,一行SQL轻松高效解决
一专多长的全栈数据库:在可观的规模内,能做到一招鲜吃遍天
全加密云数据库
数据在用户侧加密后传入云数据库,能够有效防御来自云平台外部和内部的安全威胁
RDS MariaDB TX 版
基于MariaDB提供企业级性能
MariaDB是开源数据库MySQL的一个分支
高可用版
云数据库 OceanBase 版
自主可控。阿里巴巴和蚂蚁金服 100% 自主研发的金融级分布式关系数据库。始创于2010年,从2017年开始服务外部客户
在金融行业首创“三地五中心”城市级故障自动无损容灾新标准
具备在线水平扩展能力
产品优势
性能强大
准内存处理架构实现高性能
读写分离的架构,把数据分为基线数据和增量数据
增量数据放在内存里(MemTable),基线数据放在SSD盘(SSTable)
对数据的修改都是增量数据,只写内存。所以DML是完全的内存操作,性能非常高
创造了 6100 万次/秒处理峰值的业内纪录
单集群最大数据量超过 3 PB
最大单表行数达万亿级
兼容性高
多租户模式,同时兼容 MySQL 以及 Oracle
原来的代码、应用程序只需做较小的改动就可以直接使用 OceanBase
极致弹性
实现了计算能力以及存储空间的无限水平扩展
业务无需改动任何一行代码即可实现扩容,解决分库分表烦扰
支持业务快速的扩容缩容
0 条评论
回复 删除
下一页