Earlier quoted context omitted.
Historically, MySQL has focused on ease of use, speed out-of-the-box, and aimed to be a lightweight, "personal" database (hence the "My"). This fast & light focus meant that certain "BigDB" features (triggers, transactions, ...) fell by the wayside. On the other hand, PostgreSQL has historically focused on correctness and full support for advanced database features, looking to supplant Oracle and SQLServer. This mean…
It's more subtle than that. The MySQL people never really understood relational databases or the way they were used. Back in the 90s, their documentation was full of explanations about why you didn't need foreign keys (too slow) or transactions (do it in your application if you need it) etc etc etc. They "grew up" a bit as the years went by and grudgingly added a few of these features in as an afterthought. But if yo…
Proper implementations of foreign keys are transactions are slower, and many applications really don't need those features. Like you, I disagree with the choice to value speed over correctness, but unlike you I don't see it as an indication that the MySQL developers were idiots or immature.
Or, to look at it another way: if MySQL's such a load of crap, how'd it ever get so popular? It's not for a lack of alternatives. It's because MySQL offered a feature -- speed and ease of use -- that simply wasn't available elsewhere.