Skip to content
Home › SQL Comparisons › AWS RDS MySQL vs RDS PostgreSQL
Comparison · Cloud Databases

AWS RDS MySQL vs RDS PostgreSQL

On Amazon RDS, MySQL and PostgreSQL cost the same per instance-hour and share most platform features, including Multi-AZ DB clusters, Blue/Green Deployments, zero-ETL integrations and IAM authentication. The differences are in the details: RDS offers only one MySQL major (8.4) in standard support but five PostgreSQL majors, PostgreSQL gets a large extension catalogue while MySQL gets two option-group plugins, and Blue/Green and zero-ETL each carry engine-specific limits.

Last verified October 2026. Versions checked: RDS for MySQL 8.4 (latest 8.4.11); 8.0 and 5.7 under Extended Support only, RDS for PostgreSQL 14 to 18 (latest 18.6). Licensing and features change; check the official sources for the latest details.

Quick verdict

Short answer

If your team already knows one engine, use it: RDS prices both identically and manages them in the same way. Choose RDS for MySQL if you want zero-ETL from a Multi-AZ DB cluster, simpler Blue/Green major upgrades (binary log replication rather than logical replication), or Group Replication active-active clusters. Choose RDS for PostgreSQL if you need extensions such as pgvector, PostGIS or pg_cron, a choice of several supported major versions, or logical decoding from read replicas. For SQL dialect, licensing and engine internals, see MySQL vs PostgreSQL.

How we know: This comparison is research-based: versions, Multi-AZ DB cluster support, Blue/Green, zero-ETL and IAM authentication limits, extensions and options, and On-Demand prices were checked against the Amazon RDS User Guide, the RDS release calendars and AWS's published pricing on 7 October 2026. We have not run performance tests and make no speed claims.

RDS for MySQL runs Oracle's MySQL Community Edition as a managed service. AWS builds it with AWS-LC (a FIPS 140-3 certified cryptographic library) from 8.4, restricts some server features, and exposes administration through mysql.rds_* stored procedures because there is no host access or full SUPER privilege.

RDS for PostgreSQL runs community PostgreSQL as a managed service, with an rds_superuser role in place of a superuser and a curated list of extensions you can install with CREATE EXTENSION.

Both are RDS engines, so backups, monitoring, parameter groups, Reserved Instances and the console work the same way. This page covers only what changes with the engine on RDS. For Aurora's versions of these engines, see Amazon Aurora vs MySQL and Aurora PostgreSQL vs RDS PostgreSQL.

Side by side

AspectRDS for MySQLRDS for PostgreSQL
Majors in standard support 8.4 only (until 31 July 2029); 8.0 and 5.7 only under paid Extended Support 14, 15, 16, 17 and 18
Newer community releases 9.5, 9.6, 9.7 and 26.7 only in the non-production Database Preview environment Majors within 30 days of the community x.1 release
Version currency policy LTS majors within 6 months; minors within 30 days Majors within 30 days; minors within 7 days
Multi-AZ DB cluster Yes (8.4 and 8.0); failover waits for both readers to apply lag Yes (13 to 18); failover promotes the reader with the lowest lag
Add-ons Option groups: MariaDB Audit Plugin; memcached on 5.7 and 8.0 only Extensions such as pgvector, PostGIS, pg_cron, pg_partman, pg_tle
Blue/Green major upgrade Binary log replication Logical replication: DDL, large objects and some extensions break or block it
Zero-ETL source Single-AZ, Multi-AZ DB instance or Multi-AZ DB cluster 15.7+, 16.3+ or 17.1+ DB instances only; no Multi-AZ DB cluster or read replica
IAM database authentication Supported Supported; cannot be combined with Kerberos
Instance price (On-Demand) Same rate as PostgreSQL for the same class and Region Same rate as MySQL for the same class and Region
Main trade-off Smoother Blue/Green and zero-ETL, but one supported major and few add-ons Extensions and version choice, but more Blue/Green and zero-ETL restrictions

Key differences

Versions offered on RDS

RDS for MySQL has a single major version in standard support: MySQL 8.4, at 8.4.11 since 21 August 2026, supported until 31 July 2029. MySQL 8.0 left RDS standard support on 31 July 2026 and, like 5.7, now runs only under paid RDS Extended Support. Oracle's newer lines (9.5, 9.6, 9.7 LTS and the 26.7 Innovation release) are offered only in the Database Preview environment, where instances and their backups are deleted after 60 days, AWS Support is not available, and snapshots cannot be copied to production. AWS targets only Oracle's LTS majors for production, within 6 months.

RDS for PostgreSQL supports five majors, 14 to 18, with 18.6 the latest minor (25 August 2026). AWS targets new majors within 30 days of the community's first minor and minors within 7 days. PostgreSQL 14 reaches community end of life on 12 November 2026 and RDS end of standard support on 28 February 2027, so plan that upgrade now. In practice, PostgreSQL users can stay on the newest community major in production; MySQL users on RDS cannot use 9.7 LTS in production yet.

Multi-AZ DB clusters behave differently per engine

Multi-AZ DB clusters (a writer plus two readable standbys in three AZs, using semisynchronous replication) are available only for MySQL and PostgreSQL on RDS, on a limited set of instance classes with local NVMe storage such as db.m6gd, db.r6gd and db.r8gd. Region availability is the same for both engines.

Failover differs. AWS documents that for MySQL, failover time depends on the replica lag of both remaining readers, which must apply outstanding transactions before one is promoted; for PostgreSQL it depends on the reader with the lowest lag. Both use flow control to throttle the writer: on MySQL it is on by default through rpl_semi_sync_master_target_apply_lag (120 seconds), and on PostgreSQL it is an extension that adds delay when a reader is more than two minutes behind. MySQL clusters require binlog_format ROW, and AWS strongly recommends a primary key on every table to avoid replication errors.

Extensions versus option-group plugins

RDS for PostgreSQL exposes a long, versioned list of extensions; for PostgreSQL 18 it includes pgvector 0.8.2, PostGIS 3.6.3, pg_cron, pg_partman, pg_repack, pg_hint_plan, pgAudit, orafce and pgactive. Trusted Language Extensions (pg_tle) let you write your own extensions in SQL, PL/pgSQL, JavaScript, Perl or Tcl without file system access.

RDS for MySQL is far narrower. Its option groups offer two options: the MariaDB Audit Plugin (including 8.4) and memcached (5.7 and 8.0 only; it is gone in 8.4). AWS lists MySQL features RDS does not support, including the X Plugin, the password strength and authentication plugins, the Rewriter query rewrite plugin, InnoDB tablespace encryption, persisted system variables and transportable tablespaces. InnoDB is the only engine for which point-in-time and snapshot restore are reliable. On the plus side, RDS for MySQL 8.4 and 8.0.35 and higher support the Group Replication plugin for active-active clusters.

Day-to-day administration looks different as a result:

-- RDS for MySQL: settings through RDS stored procedures
CALL mysql.rds_set_configuration('binlog retention hours', 24);

-- RDS for PostgreSQL: features through extensions
SELECT name, default_version FROM pg_available_extensions WHERE name = 'vector';
CREATE EXTENSION vector;

Blue/Green Deployments: binlog versus logical replication

Both engines support Blue/Green Deployments for upgrades and changes, with shared limits: no Multi-AZ DB cluster deployments, cascading or cross-Region read replicas, or Secrets Manager-managed master passwords; zero-ETL integrations must be removed before switchover; and point-in-time recovery history does not carry over to the new production instance.

MySQL Blue/Green uses binary log replication. Its specific limits are short: the blue instance cannot be an external binlog replica, a custom option group prevents specifying the major upgrade at creation (you upgrade the green side afterwards), and the AWS JDBC Driver for MySQL is not supported.

PostgreSQL uses physical replication unless you upgrade the major version, when it switches to logical replication, and the restrictions grow. DDL such as CREATE TABLE is not replicated and puts the green side into a "Replication degraded" state that requires recreating the deployment; large objects have the same effect; sequences are only synchronised at switchover; materialized views are not refreshed; tables without a primary key cannot take UPDATE or DELETE; pg_partman, pglogical and pgactive must be disabled; and the apply process is single-threaded, so AWS suggests AWS DMS for very write-heavy major upgrades.

Zero-ETL integrations to Redshift and SageMaker

Both engines can feed Amazon Redshift or an Amazon SageMaker lakehouse through managed zero-ETL integrations (up to five per source instance by default), and in both, DDL on a source table can trigger a table resynchronisation. RDS for MySQL integrations read the binlog, accept a Multi-AZ DB cluster as the source, work only with InnoDB tables, and reject cascading foreign key actions (ON DELETE or ON UPDATE CASCADE, SET NULL, SET DEFAULT).

RDS for PostgreSQL integrations need 15.7, 16.3, 17.1 or later, cannot use a Multi-AZ DB cluster or a read replica as the source, do not replicate unlogged tables, materialized views, geometric types or values over 64 KB, and block major version upgrades while the integration exists. Declarative partitioning transactions on the source put the affected tables into a failed state. If analytics replication is central to your design, MySQL currently has fewer restrictions on RDS.

Security and monitoring: mostly identical

IAM database authentication works with MySQL, MariaDB and PostgreSQL, using tokens valid for 15 minutes, and AWS advises 300 to 1,000 MiB of spare memory on the instance. PostgreSQL has two specifics: granting rds_iam to a user makes IAM take precedence over the password, and IAM and Kerberos cannot be enabled together. RDS for MySQL 8.4 defaults to caching_sha2_password and supports TLS 1.2 and 1.3 only.

Monitoring is the same for both: Performance Insights reached end of life on 31 July 2026 and is replaced by CloudWatch Database Insights, alongside Enhanced Monitoring and CloudWatch Logs. For third-party options, see the MySQL monitoring tools and PostgreSQL monitoring tools guides.

Pricing and licensing

RDS bills both engines the same way: instance-hours (On-Demand or Reserved), allocated storage per GB-month by volume type, provisioned IOPS and throughput above the gp3 baseline, backup storage beyond the free allowance, and data transfer. Neither engine has a licence fee.

The instance rates are identical. In AWS's published On-Demand prices for US East (N. Virginia) in October 2026, in USD, a db.m7g.large is 0.168 per hour Single-AZ and 0.337 per hour as a Multi-AZ DB instance, and a db.r7g.large is 0.239 per hour Single-AZ, for both RDS for MySQL and RDS for PostgreSQL. Costs diverge only through what you run: MySQL 8.0 and 5.7 now incur RDS Extended Support charges, and PostgreSQL 14 will after 28 February 2027. Use the AWS Pricing Calculator for your Region and configuration.

Pricing checked on the vendors' official pages on 7 October 2026. Prices change; confirm before buying.

Where each one leads

RDS for MySQL strengths

  • Zero-ETL integrations can use a Multi-AZ DB cluster as the source
  • Blue/Green major upgrades use binary log replication, with fewer restrictions on DDL and objects
  • Group Replication plugin for active-active clusters on 8.4 and 8.0.35 and higher
  • MariaDB Audit Plugin available through option groups, including on 8.4
  • Same instance price as PostgreSQL

RDS for PostgreSQL strengths

  • Five majors (14 to 18) in standard support and new majors within 30 days
  • Large extension catalogue: pgvector, PostGIS, pg_cron, pg_partman and more
  • Trusted Language Extensions for writing your own extensions safely
  • Logical decoding on read replicas and Multi-AZ DB cluster readers from 16.1
  • Multi-AZ DB cluster failover depends only on the least-lagged reader

Limitations

RDS for MySQL limitations

  • Only 8.4 in standard support; 9.x and 26.x are preview-only and deleted after 60 days
  • Few add-ons: no X Plugin, password strength plugin, Rewriter or InnoDB tablespace encryption
  • memcached is gone in 8.4
  • MySQL 8.0 instances now pay RDS Extended Support charges

RDS for PostgreSQL limitations

  • Blue/Green major upgrades rely on logical replication: DDL, large objects and some extensions break them
  • Zero-ETL excludes Multi-AZ DB clusters, read replicas and major upgrades while active
  • IAM authentication cannot be combined with Kerberos
  • PostgreSQL 14 leaves standard support on 28 February 2027

When to choose each

Choose RDS for MySQL if

  • Your application, ORM or team is built around MySQL
  • You need zero-ETL to Redshift from a highly available Multi-AZ DB cluster
  • You want major upgrades through Blue/Green with fewer schema-change restrictions
  • You want multi-writer Group Replication on a managed service

Choose RDS for PostgreSQL if

  • You need extensions such as pgvector for embeddings, PostGIS or pg_cron
  • You want to run the newest community major in production soon after release
  • You need change data capture from a read replica rather than the primary
  • You want to build custom extensions with pg_tle

When neither is right

Final recommendation

Bottom line

Because RDS prices MySQL and PostgreSQL identically and runs them with the same tooling, the engine your team knows is a sound default. Beyond that, RDS for PostgreSQL is the stronger platform for feature breadth: more supported majors, faster access to new releases, a rich extension catalogue and CDC from replicas. RDS for MySQL is the smoother choice for operations that depend on replication: Blue/Green major upgrades and zero-ETL integrations have fewer restrictions, and Multi-AZ DB clusters can feed Redshift. Check the Blue/Green and zero-ETL limits for your engine before you design upgrades and analytics around them.

Frequently asked questions

Is RDS for PostgreSQL more expensive than RDS for MySQL?

No. AWS publishes the same On-Demand rates for both engines; for example, a db.m7g.large in US East (N. Virginia) is 0.168 USD per hour Single-AZ for either in October 2026. Storage, IOPS, backup and transfer are billed the same way.

Which MySQL versions can I use on RDS?

MySQL 8.4 in production (8.4.11 is the latest minor). MySQL 8.0 and 5.7 are available only under paid RDS Extended Support. MySQL 9.5, 9.6, 9.7 and 26.7 are offered only in the Database Preview environment, which is not for production and deletes instances after 60 days.

Do both engines support Multi-AZ DB clusters?

Yes. Multi-AZ DB clusters, with two readable standbys, are available for RDS for MySQL (8.4 and 8.0) and RDS for PostgreSQL (13 to 18), but not for MariaDB, Oracle, SQL Server or Db2. Blue/Green Deployments do not support Multi-AZ DB clusters.

Can I install any extension or plugin I want?

No. RDS for PostgreSQL supports a curated list of extensions per version, plus your own via Trusted Language Extensions (pg_tle). RDS for MySQL offers only the MariaDB Audit Plugin and memcached (not on 8.4) through option groups, and does not support features such as the X Plugin or the password strength plugin.

Do zero-ETL integrations work with both engines?

Yes, to Amazon Redshift or an Amazon SageMaker lakehouse. MySQL sources can be Multi-AZ DB clusters; PostgreSQL sources must be DB instances on 15.7, 16.3, 17.1 or later, not Multi-AZ DB clusters or read replicas, and you cannot run a major version upgrade while the integration exists.

Which GUI tools work with RDS for MySQL and PostgreSQL?

Any standard client that supports the engine, such as MySQL Workbench, pgAdmin or DBeaver. See the best MySQL GUI tools and best PostgreSQL GUI tools.

Sources

Checked October 2026.

How we research comparisons: our editorial method.

More comparisons

Browse all SQL comparisons or the tools directory.