brent timothy saner via plug on 5 Dec 2021 13:37:26 -0800


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Thoughts on MySQL from a developer


On 12/5/21 15:50, JP Vossen via plug wrote:
> Here are some thoughts on MySQL from a developer that just left Oracle
> and the MySQL team.  They are...interesting.
> 
> http://blog.sesse.net/blog/tech/2021-12-05-16-41_leaving_mysql.html
> 
> I wasn't surprised that the code was "not good" but I *was* surprised at
> how not good it was and the flat out statement: "MySQL is a pretty poor
> database, and you should strongly consider using Postgres instead." 
> I've never quite understood how MySQL got the mindshare it did, but
> there are an awful lot of projects that Just Work with MySQL and either
> don't work or require contortions for Postgres.  Given a choice I'd
> always go Postgres.
> 
> Later,
> JP

Sausage is always gross when you see how it's made, so grain of salt.

That being said, a couple points:

- I'm absolutely positive "the Oracle effect" was in full swing on MySQL
(proper)'s codebase.

- MariaDB has gone a long way in fixing some terrible design decisions
MySQL proper ("Oracle MySQL"?) has made, and historical messes before
the acquisition.

- PostgreSQL is still a memory hog for concurrent clients. If you're
scaling horizontally, your DB box will need swathes of RAM as each
client connection (*each connection*) requires about 10MB RAM on the DB
box for PostgreSQL. Your program opens a pool of 50 workers? That's
500MB consumed on the DB server. Scaling that out to multiple app nodes;
say, three nodes? Instant ~1.5GB consumed *before you start even running
queries*.

- If you need something simple and relational that's *really* performant
on reads but still.. networkable/not something local on the filesystem,
nothing beats MySQL with ISAM tables. (And yes, the argument can be made
that ISAM shouldn't be used, and there are valid concerns, but if
performance is your primary concern...) - you know, like 90% of webapps
out there would benefit from.

- It is very, very common that something supports both PostgreSQL and
MySQL. It is very common something only supports MySQL. It is *extremely
rare* that something only supports PostgreSQL.


Do I use PostgreSQL if I need complex queries/in-engine operations, or
extensive type constraining, etc.? Absolutely. It's fantastic for that.
It fulfills a certain set of needs *wonderfully*.

But would I use it for something like a basic inventory system, or a
pub/sub backend, etc.? No. Stick with MariaDB for that. There's no need
to feed the PostgreSQL beast if you don't need it shackled in your basement.

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug