Hacker News new | past | comments | ask | show | jobs | submit login

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 meant that speed and ease of use sometimes suffered.

Today, though, both databases have mostly caught up -- MySQL has implemented most of the big ticket features that PostgreSQL had for years, and PostgreSQL (especially with the 9.0 release) has gotten far easier to use and tune, and is now as fast (or faster) than MySQL on most workloads.

The heritage still shows, at times: MySQL, even in "strict" mode, still suffers from annoying bugs and mis-interpretations of SQL features. PostgreSQL is still slow out of the box, often needing to be carefully tuned for the best performance.

Disclaimer: major PostgreSQL user and fan here. I've tried to give as objective an answer as I can.




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 you need a single-user database there's SQLite and if you need a free serious RDBMS there's Postgres. There's really no ecological niche for MySQL. It only hangs on because sites like Slashdot use it (and if you have thousands of reads for every write, and do only very simple queries, it is adequate).


Like I said, I'm a big PostgreSQL fan. However, I really don't think you're giving the MySQL developers enough credit here. Smart people -- and I maintain that the MySQL developers are a whole hell of a lot smarter than you or I -- can have differing opinions about trade-offs, and speed-vs-correctness is one of the oldest.

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.


> Or, to look at it another way: if MySQL's such a load of crap, how'd it ever get so popular?

Justin Bieber.


Even worse, IE6. The fact that it initially offered crappy implementations of some features that users were looking for doesn't make it any less crappy.


This comparison is right in the sense what it gets wrong: the time and context. IE6 is sure crappy by today's standards, but back in 2001 it was the best browser you could get: Netscape lost it since release of Netscape 4 which was the crap. And hey, IE6 even got box model fixed! Too bad it had no competition and stagnated till Firefox appeared and started kicking IE's ass. In similar vein a lot of "criticism" of MySQL is done by those not aware of the latest developments of this DB, different engines it supports and different modes it can work in. Well, at least "MySQL does not support transactions" cannot be heard anymore.


My was Monty's daughter's name. It's also why his next database is MariaDB, that's his other daughter's name. The My as in ownership and My as his daughters name was just a good coincidence.


No, My is Monty's own nickname.


Might be true, but the MySQL docs state that the 'My' comes from his daughter:

http://dev.mysql.com/doc/refman/5.5/en/history.html




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: