Why is Postgres growing so fast?
db-engines.comBecause many commercial applications are using it to keep costs down, and its mature, works and easy to support. I have dozens of commercial apps that use postgres, easy to upgrade and support.
Out of the top 5 databases, Postgres is the only on that had significant growth the previous year - +36 points.
What is causing this comparative surge in popularity?
My take:
* When the pendulum has swung back from NoSQL, MySQL was in a weird place due to Oracle.
* OSS project and foundation not dominated by any particular company means that startups are willing to bet on it. In turn, these startups bring more tools, extensions, and attention to Postgres.
* The open wire protocol, with multiple existing implementations, means that if your application depends on Postgres, you will have plenty of options going forward.
* The extension ecosystem is working because extensions can do almost anything (create types, indexes, functions, etc.). And now pgrx and pgzx open up to writing extensions in Rust and Zig.
My guess was also the ease of building safe extensions along with numerous vector and time series extensions, and it's recently improved replication capabilities.
We switched from MySQL at work probably ~5 years ago. Half following the hype, and half because we had a couple instances of DB corruption on MySQL and weren't ever able to determine the cause.
Postgres has been great, and it's free, so we roll it for almost everything now. I say almost everything because sometimes SQLite is a better fit-- when a DB is only a few MB on an internal app etc.
For all the reasons shared here already, plus a compounding effect on top:
For every percentage point of marketshare that Postgres takes, the risk in choosing Postgres decreases, and the risk of choosing an alternative increases.
Risk is:
- Will it continue to develop, get bugs fixed, security holes patched?
- Will it work with all future tech my company adopts?
- Will it remain Open Source? - etc...
Maybe because of Supabase, Neon, etc?