
For most business applications both MySQL and PostgreSQL are safe, well-supported choices, and the framework your team uses matters more than the engine. Pick MySQL when your application or platform already expects it (most PHP software, WordPress, Magento and many Laravel projects) and your workload is mostly straightforward reads and writes. Pick PostgreSQL when you expect complex reporting, heavy use of JSON data, strict data rules, or AI features such as semantic search, because the pgvector extension lets you keep embeddings next to your business data. Both run as managed services on AWS, so operations should not decide it.
Key takeaways
- As of October 2026 the current MySQL long-term support (LTS) lines are 8.4 and 9.7 (released 21 April 2026). MySQL 8.0 reached end of life in April 2026, so anything still on 8.0 needs an upgrade plan.
- PostgreSQL supports each major version for five years. Versions 14 to 18 are supported; 14 stops receiving fixes on 12 November 2026, and PostgreSQL 19 is at release-candidate stage (RC 1 on 15 October 2026).
- Licensing differs: PostgreSQL uses a permissive licence similar to BSD or MIT; MySQL Community is GPL, and companies that ship MySQL inside closed-source products need Oracle's commercial licence.
- For AI search, PostgreSQL with pgvector is available on Amazon RDS and Aurora. MySQL 9.x has a VECTOR column type, but its distance function is limited to Oracle's HeatWave and MySQL AI products.
- Moving an existing application between them is a project, not a setting: data moves with tools, but queries, stored procedures and tests need rework.
Which one should a new business application use?
Start with the software, not the database. If you are building on WordPress, WooCommerce or Magento, use MySQL (or its fork MariaDB), because that is what those platforms are built and tested against. If you are building a custom application with a modern framework (Laravel, Django, Rails, NestJS, Next.js, .NET), both work well and the decision comes down to the data.
| Situation | Better fit | Why |
|---|---|---|
| WordPress, WooCommerce, Magento, most off-the-shelf PHP software | MySQL | The platform expects it; support and hosting are simplest |
| Read-heavy web application with a simple data model | Either; MySQL is a common default | Both handle it well; pick what your team knows |
| Finance, ledgers, audit trails, complex reporting | PostgreSQL | Rich SQL, strict constraints and data types, strong analytical queries |
| Flexible product or event data stored as JSON and queried often | PostgreSQL | jsonb with GIN indexes |
| Semantic search, AI assistants or recommendations on your own data | PostgreSQL | pgvector keeps embeddings beside business data |
| You will ship the database inside a commercial product | PostgreSQL, or budget for a MySQL commercial licence | Licence terms (see below) |
Our own work reflects this split. On Scuela, an e-learning marketplace we built with Laravel and Vue.js, MySQL holds courses, memberships, affiliate commissions and many academies on their own subdomains over a single-database architecture. On the AutoAccount accounting platform for Business Analytics Inc., PostgreSQL with Alembic migrations holds transactions, the general ledger and the audit trail, behind a FastAPI back end.
Which versions are current, and how long are they supported?
MySQL has two release tracks. Oracle's manual says LTS releases "only contain necessary fixes" and follow the Oracle Lifetime Support Policy, "which includes 5 years of premier support and 3 years of extended support". Innovation releases add features and "are supported until the next Innovation release". As of October 2026:
- 8.4 LTS (April 2024) and 9.7 LTS (21 April 2026) are the LTS lines.
- 8.0 reached end of life in April 2026 with 8.0.46, according to Oracle's 8.0 release notes.
- After 9.7, version numbers follow the calendar: the July 2026 release is 26.7.
- Upgrades go one LTS line at a time (8.4 to 9.7); skipping an LTS series is not supported.
PostgreSQL ships one major version a year and supports each "for 5 years after its initial release", with minor releases at least every three months. As of October 2026 the supported versions are 18 (end of support 14 November 2030), 17 (8 November 2029), 16 (9 November 2028), 15 (11 November 2027) and 14 (12 November 2026). A new project should start on 18; 19 is in release-candidate testing and the project advises against running release candidates in production.
Either way you get about five years per version; budget for an upgrade every few years.
What do the licences mean for a business?
PostgreSQL is released under the PostgreSQL License, which its site describes as "a liberal Open Source license, similar to the BSD or MIT licenses". You can use, modify and redistribute it, including inside commercial products, provided the copyright notice travels with it.
MySQL is dual-licensed. The Community server is GPL; Oracle's licensing page says that OEMs, ISVs and VARs that distribute their commercial software with MySQL and do not want to release that software's source under the GPL "must enter into a commercial license agreement with Oracle".
For the usual case, a website or SaaS application that you run on your own servers or on AWS, neither licence costs anything and neither forces you to publish your code. The difference matters when you sell software that customers install with the database bundled. This is general information, not legal advice; check distribution plans with a lawyer.
How do they compare on AWS?
Both run as managed databases on Amazon RDS and on Amazon Aurora, so backups, patching, failover and read replicas are handled by AWS either way.
- RDS for MySQL: standard support for 8.0 ended on 31 July 2026. Databases still on 8.0 were enrolled automatically in RDS Extended Support, which is billed on top of the instance, from 1 August 2026.
- Aurora MySQL: a version compatible with MySQL 8.4 became generally available in May 2026; the latest minor in the release notes is 8.4.8 (3 September 2026). TLS is required for client connections by default in this version.
- RDS for PostgreSQL: major version 18 has been available since November 2025; the latest minor is 18.6 (August 2026).
- Aurora PostgreSQL: lists pgvector 0.8.2 for version 18.6.
Check prices on the AWS pricing pages for your region and instance size. Engine choice rarely changes the bill much; the instance class, storage, replicas and any Extended Support charge do.
How do they handle JSON data?
Both store JSON, but PostgreSQL goes further. MySQL has a native JSON type with validation and functions to read and update parts of a document. PostgreSQL offers json and jsonb; its documentation recommends jsonb for most applications, and jsonb can be indexed with GIN indexes so queries on fields inside the document stay fast.
If your product catalogue, form submissions or event data vary a lot from record to record and you query inside them often, PostgreSQL is the easier fit. If JSON is only a side column for settings, either is fine.
Which is better for AI search and assistants?
PostgreSQL, today. The open-source pgvector extension adds a vector type and similarity search, so an AI assistant can find the passages or products closest in meaning to a question, using the same database, backups and access rules as the rest of your data. It is available on RDS and Aurora.
MySQL 9.x added a VECTOR column type, but the MySQL 9.7 manual says its DISTANCE() function "is available only for users of MySQL HeatWave on OCI and MySQL AI; it is not included in MySQL Commercial or Community distributions". On standard MySQL you can store vectors but not search them by similarity in the database.
A separate vector store is also a valid design. In the AI assistant back end we built for Reactor, accounts and chats live in PostgreSQL while vector search runs in Qdrant. The question is whether one database is simpler to run and secure than two; for a first assistant on modest data, it usually is.
What about replication and high availability?
Both are mature. MySQL replicates through its binary log, and Group Replication (the basis of InnoDB Cluster) adds automatic failover inside the database. PostgreSQL offers streaming replication for standby copies and logical replication for copying selected tables, which is also useful for upgrades and migrations.
On AWS most teams use the managed features instead: Multi-AZ deployments and read replicas on RDS, or Aurora's shared storage with up to 15 read replicas. Aurora MySQL 8.4.8 also added delayed and multi-source binlog replication. For a business owner the useful questions are "what happens if the primary fails, and how long are we down?" and "how far back can we restore?", not which replication protocol is used.
How hard is it to switch later?
Harder than it looks. Moving the data is the easy part: AWS Database Migration Service copies data from MySQL to PostgreSQL, and DMS Schema Conversion translates the schema and flags what it cannot convert. The work is in the application:
- SQL that uses one engine's dialect (date functions,
LIMITand upsert syntax, case sensitivity,AUTO_INCREMENTversus identity columns). - Stored procedures, triggers and views, which have to be rewritten.
- ORM settings and raw queries in the code, plus every test that touches the database.
- Performance: indexes and query plans behave differently, so slow queries appear in new places.
Even upgrades within one engine catch people out. Aurora MySQL 8.4's upgrade prechecks, for example, block the upgrade if a table uses AUTO_INCREMENT on a FLOAT or DOUBLE column, because MySQL 8.4 removed it.
This is where evidence beats opinion. We built an AI-assisted database performance SaaS that collects performance evidence from live MySQL, MariaDB, PostgreSQL and MongoDB databases, tests the relational engines against several versions of each, and returns ranked index and configuration fixes with risk and rollback. Building it meant handling all four engines' differences in one product, which is why we tell clients to choose once and choose deliberately.
If you are weighing a new build or a move, our MySQL development and PostgreSQL development teams can review the data model and the platform you are building on before you commit.
FAQ
Is PostgreSQL faster than MySQL?
Neither is faster in general. Speed depends on the queries, indexes, data size and server settings. Simple read-heavy workloads run well on both; complex joins and analytical queries often favour PostgreSQL's planner and index types. Test your own workload before deciding.
Is MySQL free for commercial use?
Yes, for running your own website or SaaS. MySQL Community is GPL, and that only restricts you if you distribute MySQL with closed-source software, in which case Oracle sells a commercial licence. PostgreSQL's permissive licence has no such condition.
Should we still be on MySQL 8.0?
No. MySQL 8.0 reached end of life in April 2026. On Amazon RDS it moved to paid Extended Support from 1 August 2026. Plan an upgrade to 8.4 LTS; the step to 9.7 LTS can follow.
Do we need a separate vector database for an AI assistant?
Not always. PostgreSQL with pgvector handles similarity search inside the database you already run, on RDS or Aurora. A dedicated vector store can make sense at large scale or when search runs separately from the application.
Is MariaDB the same as MySQL?
MariaDB began as a fork of MySQL and stays largely compatible for common applications, but the two have diverged, so check your platform's supported list. Amazon RDS offers MariaDB as its own engine.
Can we move from MySQL to PostgreSQL later?
Yes, but treat it as a project: the data copies with tools such as AWS DMS, while queries, procedures, ORM settings and tests need rework and a full regression test.
Sources (22 links)
- MySQL 9.7 Reference Manual, MySQL releases: LTS and Innovation (accessed 29 October 2026): https://dev.mysql.com/doc/refman/9.7/en/mysql-releases.html
- Oracle blog, "MySQL 9.7 Is Out and the Community Wins" (April 2026): https://blogs.oracle.com/mysql/mysql-9-7-is-out-and-the-community-wins
- MySQL 8.0 release notes (end-of-life notice): https://dev.mysql.com/doc/relnotes/mysql/8.0/en/
- MySQL licensing for OEMs, ISVs and VARs: https://www.mysql.com/about/legal/licensing/oem/
- MySQL 9.7 Reference Manual, vector functions: https://dev.mysql.com/doc/refman/9.7/en/vector-functions.html
- MySQL 8.4 Reference Manual, the JSON data type: https://dev.mysql.com/doc/refman/8.4/en/json.html
- MySQL 8.4 Reference Manual, Group Replication: https://dev.mysql.com/doc/refman/8.4/en/group-replication.html
- PostgreSQL versioning policy (accessed 29 October 2026): https://www.postgresql.org/support/versioning/
- PostgreSQL 19 RC 1 announcement (15 October 2026): https://www.postgresql.org/
- PostgreSQL licence: https://www.postgresql.org/about/licence/
- PostgreSQL documentation, JSON types: https://www.postgresql.org/docs/current/datatype-json.html
- PostgreSQL documentation, logical replication: https://www.postgresql.org/docs/current/logical-replication.html
- pgvector: https://github.com/pgvector/pgvector
- Amazon RDS Extended Support: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html
- MySQL on Amazon RDS versions: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html
- Amazon Aurora MySQL 8.4 is generally available (May 2026): https://aws.amazon.com/about-aws/whats-new/2026/05/amazon-aurora-mysql/8-4/
- Aurora MySQL version 8.4 compatible with MySQL 8.4: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.MySQL84.html
- Aurora MySQL 8.4.8 release notes (3 September 2026): https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.848.html
- Amazon RDS for PostgreSQL supports major version 18 (November 2025): https://aws.amazon.com/about-aws/whats-new/2025/11/amazon-rds-postgresql-major-version-18/
- Amazon RDS for PostgreSQL release calendar: https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-release-calendar.html
- Extensions supported for Amazon Aurora PostgreSQL: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html
- AWS DMS Schema Conversion: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_SchemaConversion.html



