Comment

Comment by shanemhansen

MySQL is a decent nosql option with mature replication. If you care about your data, expect MySQL to be your foe rather than your friend.

Do you expect your triggers to fire? You are SOL https://bugs.mysql.com/bug.php?id=11472

Do you expect to be able to insert utf8 into utf8 columns? Don't be naive. Read the docs and you'll discover utf8mb4 or as I like to refer to it: mysql_real_utf8.

How about transactions? Surely a real SQL database supports transactions right? Or at the very least if it doesn't it would complain loudly when you use a transaction where not supported right? Once again this behavior is helpfully documented https://dev.mysql.com/doc/refman/8.0/en/commit.html

Do you expect to be able to put a value into MySQL and get that same value back out? You are SOL. But it's documented.

I can honestly say that the only appropriate time to use MySQL is when you can't use postgres and you are willing to move from a RDBMS to something that requires significantly more work to prevent data corruption.

I respect the hell out of MySQL engineers in terms of raw performance and the engineering of Innodb. I'm sure they aren't happy there's a million broken applications relying on defaults they can't change. I'm sure they aren't happy that fundamental limits in how pluggable storage engines work make ACID transactions not possible in the general case.

Postgres, for all of it's issues, feels like a database that has your back.

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton