▲ | n_u 4 days ago | |||||||
> This made me laugh pretty hard, but it's basically my take too. Haha glad you enjoyed it. > It's interesting to me, though, that people see Postgres as the "big database" and MySQL as the "hobby database." I basically see things as the exact opposite I agree. As I understand Postgres started as a challenger to SQL[1][2] with support for more complicated data types but then in the mid '90s they added SQL support and it was renamed PostgreSQL. Anecdotally I have heard from people working in industry in the 2000s-2010s that Postgres was viewed as less mature so many of the large web applications were on MySQL. This is a bit confusing to me because MySQL was released around the same time Postgres added SQL support but maybe it was because MySQL had a company behind it. Many large scale applications of those days were using MySQL. Facebook developed RocksDB and then MyRocks[3] based on MySQL. Youtube built Vitess [4] which was sharded MySQL which was later used by Slack [5], Square, Pintrest and others. > It's more academically correct I'm curious about this. I know that Postgres implements MVCC in a wasteful way and uses the OS page cache in addition to its buffer pool resulting in double buffering rather than direct I/O. I feel like the more I learn about database internals the more I learn about how MySQL did things the "right" way and Postgres's approach is a bit odd. But perhaps I'm missing something. [1] https://en.wikipedia.org/wiki/PostgreSQL#History [2] https://db.cs.cmu.edu/papers/2024/whatgoesaround-sigmodrec20... [3] https://engineering.fb.com/2016/08/31/core-infra/myrocks-a-s... [4] https://vitess.io/docs/22.0/overview/history/ [5] https://slack.engineering/scaling-datastores-at-slack-with-v... | ||||||||
▲ | bri3d 4 days ago | parent | next [-] | |||||||
> I feel like the more I learn about database internals the more I learn about how MySQL did things the "right" way and Postgres's approach is a bit odd. This is a good distinction too; I was thinking from the end-user’s standpoint, where Postgres has historically been seen as more faithful to both SQL standards and consistency guarantees. | ||||||||
▲ | jedberg 3 days ago | parent | prev | next [-] | |||||||
> This is a bit confusing to me because MySQL was released around the same time Postgres added SQL support but maybe it was because MySQL had a company behind it. I think the main reason MySQL took off faster than Postgres originally is because it had better defaults. MySql worked out of the box on modern hardware. Postgres assumed you only have 4MB of memory until well into the 2010s, in part to make it keep running on everything it ever ran on in the past. So when you first installed Postgres, it would perform terribly until you optimized it. It's really a fantastic case study in setting good defaults. | ||||||||
▲ | pests 3 days ago | parent | prev | next [-] | |||||||
My reason for choosing MySQL in the early days was due to it being the default choice for PHP apps back in the day. Every tutorial, the mysql_ function, every app like Wordpress or anything else, and phpmysqladmin. Postgres was seen as more corporate / official / big boys club in my view… similar to how clickhouse was viewed here until recently. | ||||||||
▲ | apavlo 4 days ago | parent | prev [-] | |||||||
You are conflating MySQL and InnoDB. The latter does a lot of good things, much more than the former. | ||||||||
|