Postgres or MySQL: an answer instead of a comparison table

Most comparisons of these two are feature matrices that leave you no better equipped to decide. So here is a position: for a new project, default to PostgreSQL, and understand the specific cases where that default is wrong.

Why Postgres as the default

It has the richer type system, and this matters more day to day than it sounds. Native JSON support that you can index and query properly, real array types, ranges, and an extension ecosystem that includes PostGIS for geospatial work and pgvector for embeddings. When your product grows a requirement you did not anticipate, Postgres more often already has something for it.

Its handling of concurrent transactions is also stricter, which mostly means fewer situations where you discover an edge case in your data at an inconvenient time.

Where MySQL earns its place

Operational maturity at very large scale, with a specific pedigree. The ecosystem around horizontally sharding MySQL — Vitess in particular, built at YouTube and used by Shopify and Slack — is more battle-tested than the Postgres equivalent. If you have concrete reason to believe you will need to shard across many machines, that tooling gap is real.

Replication is also simpler to reason about, and if your hosting is shared cPanel-style infrastructure, MySQL or MariaDB is frequently what you actually get. A database that is available beats a database that is theoretically preferable.

What almost never matters

Benchmark differences. For an application below serious scale, both are limited by your query patterns and your indexes, not by the engine. A missing index will cost you three orders of magnitude more than the choice between these two ever will.

The practical summary

New greenfield project, no constraints: Postgres. Existing team with deep MySQL experience: MySQL, and do not let an article talk you out of expertise you already have. Shared hosting: whatever is installed. Planning for sharding across dozens of machines from day one: MySQL with Vitess, and also examine whether you really need that on day one.