|
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. |
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).