
PolarDB 是阿里云自主研发的云原生关系型数据库,兼容 MySQL、PostgreSQL 和 Oracle 语法,在架构设计上和 RDS 有较大的区别。
PolarDB 采用计算存储分离架构,主节点和所有只读节点共用同一份物理存储,不需要在节点之间复制数据。
这个设计让 PolarDB 在扩展只读节点、弹性应对流量高峰、以及大容量存储场景下,表现出明显优于传统数据库架构的性能和成本优势。
存储计算分离:PolarDB 的核心架构
理解 PolarDB 和 RDS 的差别,需要先理解两者底层存储架构的不同。
RDS 的架构是每个数据库实例独立管理自己的存储。主库有一份数据,备库通过 binlog 复制保持数据同步,每个只读实例同样需要独立复制一份完整的数据。添加一个只读节点,意味着要把主库的全量数据完整复制过去,数据量越大,这个过程耗时越长,通常需要数小时到数天。
PolarDB 的架构将存储从计算节点中独立出来,所有计算节点(主节点 + 只读节点)共同访问底层的分布式共享存储上的同一份数据副本。主节点写入数据到共享存储,只读节点直接从同一个存储读取,不需要数据复制。这个设计带来了两个直接好处:添加只读节点只需要启动一个新的计算节点并将其连接到共享存储,整个过程在分钟级内完成;存储费用只需要支付一份,而不是随节点数量线性增加。
PolarDB 支持的最大存储容量为 100TB,最多可以横向扩展到 16 个计算节点,每个节点最高配置 88 vCPU。主备切换时实现 RPO=0(零数据丢失),彻底解决了传统异步复制架构中主备切换可能丢失数据的问题。可用性 SLA 为 99.995%,高于 RDS 的 99.95%。
支持的数据库引擎
PolarDB 提供三种引擎版本,覆盖不同的技术栈需求。
PolarDB for MySQL 是使用最广泛的版本,完全兼容 MySQL 8.0 和 MySQL 5.7 语法,现有 MySQL 应用不需要修改任何代码即可迁移。相比 RDS for MySQL,PolarDB 在大数据量和高并发场景下提供明显更高的吞吐量,官方数据是最高 6 倍于开源 MySQL 的 OLTP 性能。PolarDB for MySQL 还支持列索引(IMCI,In-Memory Column Index)功能,在同一集群内同时处理事务型查询(OLTP)和分析型查询(OLAP),不需要额外搭建数仓,适合需要实时分析的业务场景。
PolarDB for PostgreSQL 兼容 PostgreSQL 11 及以上版本,适合依赖 PostgreSQL 生态(PostGIS 地理空间处理、JSON 文档存储、复杂查询优化)的业务,在存储扩展性和弹性能力上同样优于 RDS for PostgreSQL。
PolarDB for PostgreSQL(兼容 Oracle) 在 PostgreSQL 基础上高度兼容 Oracle 的语法、函数和存储过程,专门为需要从 Oracle 迁移到云数据库的企业设计。支持 Oracle 特有的 PL/SQL 语法、内置函数和包,迁移改造成本低于直接迁移到标准 MySQL 或 PostgreSQL。
PolarDB vs RDS:选型判断
这是大多数用户在使用阿里云数据库时最常见的问题。两者不是替代关系,而是面向不同场景的产品定位。
关于 RDS 的完整功能说明,可以参考 阿里云 RDS 数据库指南;这里重点说清楚什么情况应该选 PolarDB 而不是 RDS。
选 PolarDB 的场景:
业务需要多个只读节点分散读取压力。RDS 的每个只读实例需要独立复制数据,成本随节点数线性增加;PolarDB 共享存储,每增加一个只读节点只需支付计算节点的费用,存储费用不增加,读节点越多,PolarDB 的成本优势越大。
数据量持续增长、预计超过 RDS 单实例存储上限的业务。PolarDB 存储容量上限 100TB,支持按实际使用量计费,不需要提前预留大量存储空间。
业务有明显的流量波峰(电商促销、游戏开服)。PolarDB 的 Serverless 模式可以在流量高峰自动扩容计算节点,高峰结束后自动缩容,不需要为应对峰值长期持有高规格实例。
需要同时处理事务和分析的 HTAP 场景,PolarDB 的列索引支持在不影响 OLTP 写入性能的情况下执行复杂分析查询。
选 RDS 的场景:
数据量较小(100GB 以内),并发量不高,对读扩展没有需求。这类场景 RDS 的单价更低,不需要为 PolarDB 的高级能力额外付费。数据库使用逻辑相对简单,只需要基础的主备高可用,不需要多只读节点或弹性伸缩。
| 对比维度 | PolarDB | RDS |
| 存储架构 | 共享存储,所有节点共用 | 独立存储,各节点独立 |
| 添加只读节点 | 分钟级(无需数据复制) | 数小时(需全量数据同步) |
| 最大存储 | 100TB | 受限于单实例磁盘上限 |
| 可用性 SLA | 99.995% | 99.95% |
| 适合场景 | 高并发、大数据量、读扩展 | 中小规模、成本敏感 |
| 初始成本 | 高于同规格 RDS | 更低 |
创建 PolarDB 集群与连接配置
在阿里云控制台搜索「PolarDB」,进入控制台后点击「创建集群」,关键配置项如下:
地域和可用区: 选择和 ECS 应用服务器相同的地域,同 VPC 内访问走内网,不产生流量费。PolarDB 支持单可用区和双可用区(开启存储热备),双可用区模式在主可用区故障时自动切换到备可用区,RPO=0,RTO 通常在数分钟以内。
引擎和版本: 根据技术栈选择 MySQL 或 PostgreSQL,版本建议选当前最新稳定版。
节点规格: 最小配置从 2 核 4GB 开始,计算节点规格随时可以在线升级,不需要停机。初始阶段选较小规格,业务增长后再升配比一开始过度配置更经济。
配置白名单和创建账号之后,获取内网连接地址,使用 MySQL 命令行连接:
mysql -h pc-xxxxxx.mysql.polardb.rds.aliyuncs.com \
-P 3306 \
-u your_account \
-p your_password \
your_database
使用 Python 连接:
import pymysql
conn = pymysql.connect(
host=’pc-xxxxxx.mysql.polardb.rds.aliyuncs.com’,
port=3306,
user=’your_account’,
password=’your_password’,
database=’your_database’,
charset=’utf8mb4′
)
cursor = conn.cursor()
cursor.execute(‘SELECT VERSION()’)
result = cursor.fetchone()
print(f”PolarDB 版本:{result[0]}”)
conn.close()
PolarDB 集群提供两个连接地址:主地址(接收读写请求)和集群地址(自动将读请求路由到只读节点,写请求路由到主节点)。生产环境应使用集群地址,读写流量自动分离,不需要在应用层做额外的读写分离配置。关于 ECS 连接数据库的安全组配置和内网访问方式,可以参考 阿里云 ECS 完整教程。
只读节点:水平扩展读性能
PolarDB 的只读节点是实现读扩展最直接的手段。每个只读节点从共享存储读取数据,和主节点读取同一份物理数据,主节点写入数据后,只读节点通过共享存储机制实时同步,数据一致性延迟通常在毫秒级以内,远低于传统主从复制的复制延迟。
添加只读节点的步骤:在 PolarDB 控制台的集群管理页面,点击「添加节点」,选择节点规格,确认后约 5 分钟内完成。只读节点的规格可以和主节点不同,如果读请求对内存需求更高,可以为只读节点选择内存更大的规格。
读写分离的实现:PolarDB 的集群地址已内置读写分离能力,应用连接集群地址后,DML 语句(INSERT/UPDATE/DELETE)自动路由到主节点,SELECT 语句自动路由到只读节点,路由权重可在控制台调整。不需要在应用代码中手动区分主库和从库连接,也不需要引入额外的代理中间件。
Serverless 模式:弹性计费与无活动暂停
PolarDB Serverless 是计费灵活性最高的模式,适合流量波动明显或希望按实际用量付费的业务。
计费单位是 PCU(PolarDB Capacity Unit),1 PCU 约等于 1 核 2GB 内存的计算能力。Serverless 集群在运行期间,系统根据实际负载自动调整分配的 PCU 数量,按秒计费、按小时出账。流量高峰时自动扩容,低峰时自动缩容,不需要手动干预。
Serverless 的 PCU 范围可以设置上下限:下限决定了集群始终保持的最小算力,下限越低,闲置期间的成本越低;上限决定了流量高峰时可以扩容的最大算力,防止突发流量导致成本失控。
无活动暂停是 Serverless 独有的能力:在集群设定的空闲时间内没有任何请求时,计算节点自动暂停,暂停期间完全不收计算费用,只收存储费用。下一次有请求到来时,集群自动从暂停状态恢复,恢复时间通常在数秒内完成。这个功能对开发测试环境特别有价值——下班后数据库自动暂停,上班后第一次访问自动恢复,相比全天运行固定规格实例可以节省 70% 以上的计算成本。
计费方式与成本构成
PolarDB 的账单由四个部分构成:
计算节点费是账单主体,按节点规格和运行时长计费。包年包月模式下按购买时长享受折扣,购买时长越长折扣越大;按量付费按小时计费,灵活但单价高于包年包月;Serverless 按 PCU-秒计费,按小时出账,当前享有 5 折优惠。
存储费按实际使用量计费,这是 PolarDB 与 RDS 在存储计费上的关键差别。RDS 需要提前预留存储空间,无论是否用满都要付费;PolarDB 存储按实际用量计费,用多少付多少,存储空间自动随数据增长而扩展,不需要手动扩容。目前存储费约 ¥0.00200 元/GB/小时(以控制台当期报价为准)。
备份存储费在超出免费额度后按量计费。每个 PolarDB 集群有一定的免费备份存储空间,超出部分按 ¥0.00014 元/GB/小时计费。
SQL 洞察是可选的增值功能,提供 SQL 审计、性能分析和诊断能力,按量付费,适合有合规审计需求或需要深度 SQL 性能分析的业务。
降低 PolarDB 成本的几个直接方式:对于稳定运行的生产集群,选择包年包月 3 年期比按量付费节省 40–50%;Serverless 计算包按预购方式购买,比按量计费价格更低;对于数据量大但读写压力不均匀的业务,通过合理设置 Serverless 的 PCU 上下限,避免为峰值长期持有高规格节点。
账号开通与代理充值
使用 PolarDB 需要有效的阿里云国际版账号,PolarDB 在控制台可以直接购买,没有特殊的配额申请流程。通过 阿里云账号出售 渠道获取的高权重账号,可以直接用于生产环境的 PolarDB 集群创建,1 分钟交付,免实名免绑卡。
对于月均 PolarDB 消耗在 $200 以上的团队,通过代理渠道充值可以获得赠金返点,赠金适用于 PolarDB 计算节点费、存储费和所有关联资源费用。关于各档位充值返点的具体说明,可以参考 阿里云国际版折扣 的完整介绍。付款支持 USDT 和对公转账,不受国际信用卡限制。


