* 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.
tudorg|1 year ago
* 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.
brianhorakh|1 year ago
duffyjp|1 year ago
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.