Comment by riskable
1 day ago
PostgreSQL seems to have become the be-all, end-all SQL database that does everything and does it all well. And it's free!
I'm wondering why anyone would want to use anything else at this point (for SQL).
1 day ago
PostgreSQL seems to have become the be-all, end-all SQL database that does everything and does it all well. And it's free!
I'm wondering why anyone would want to use anything else at this point (for SQL).
Postgres is wonderful, and has great many useful extensions. But:
* MySQL has a much easier story of master-master replication.
* Mongo has a much easier story of geographic distribution and sharding. (I know that Citus exists, and has used it.)
* No matter how you tune Postgres, columnar databases like Clickhouse are still faster for analytics / time series.
* Write-heavy applications still may benefit from something like Cassandra, or more modern solutions in this space.
(I bet Oracle has something to offer in the department of cluster performance, too, but I did not check it out for a long time.)
And SQLite is capable enough in many cases too...
“does it all well” is a stretch.
Any non-trivial amount of data and you’ll run into non-trivial problems.
For example, some of our pg databases got into such state, that we had to write custom migration tool because we couldn’t copy data to new instance using standard tools. We had to re-write schema to using custom partitions because perf on built-in partitioning degrades as number of partitions gets high, and so on.
Once upon a time, MySQL/InnoDB was a better performance choice for UPDATE-heavy workloads. There was a somewhat famous blog post about this from Uber[1]. I'm not sure to what extent this persists today. The other big competitor is sqlite3, which fills a totally different niche for running databases on the edge and in-product.
Personally, I wouldn't use any SQL DB other that PostgreSQL for the typical "database in the cloud" use case, but I have years of experience both developing for and administering production PostgreSQL DBs, going back to 9.5 days at least. It has its warts, but I've grown to trust and understand it.
1: https://www.uber.com/blog/postgres-to-mysql-migration/
To be fair, postgres still suffers from a poor choice of MVCC implementation (copy on write rather than an undo log). This one small choice has a huge number of negative knock on effects once your load becomes non-trivial
PostgreSQL has no mature Vitess alternative. Hence, the largest oss OLTP database deployments tend to be MySQL. Like YouTube and Uber for example.
This is changing soon with Neki.
https://www.neki.dev
Nice. But it's not even available yet.
It will take years to call this mature. Certainly not "soon"
For me that page has basically 0 descriptive content.
YouTube has migrated mostly to Spanner from what I hear
It’s the clear OLTP winner but for OLAP it’s still not amazing out of the box.
It's heavy, I'd say sqlite3 close to the client and postgres back at the server farm is the combo to use.
Can’t really run it on iOS. And its WASM story is weak