> In truth, although postgres has more features, MySQL is probably > better for someone who is just starting to use databases to develop > for: the chances are higher that anyone using their code will have > MySQL than Postgres, and they aren't going to need the features > that Postgresql has that MySQL doesn't. IMO, this has changed > since only a year or two ago, when MySQL didn't support foreign-key > constraints.
mysql does deserve serious consideration now that it supports transactions. However, keep in mind: 1. mysql doesn't support transactions - one of its io layers (innodb) does. If you're hoping to get your application hosted you will find that most mysql installations don't support innodb. And due to the bugs in mysql, when you attempt to create a transaction-safe table in mysql if innodb isn't available it will just silently create it in myisam, and your transactions will be silently ignored. 2. mysql is still missing quite a few database basics - views are the most amazing omission, but the list also includes triggers and stored procedures as well. Although most of these features are included in the new beta, they aren't yet available in production. 3. mysql has an enormous number of non-standard features such as comment formatting, how nulls work, concatenation operator, etc. This means that you'll learn non-standard sql, and most likely write non-portable sql. 4. additionally, mysql has a peculiar set of bugs - in which the database will change your data and report no exception. These bugs were probably a reflection of mysql's marketing message that the database should do nothing but persist data, and data quality was the responsibility of the application. This self-serving message appears to have been dropped now that they are catching up with other products, but there's a legacy of cruft that still remains. Examples of these errors include: silent truncation of strings to fit max varchar length, allows invalid dates, truncation of numeric data to fit max numeric values, etc. 5. cost: mysql isn't expensive, but it isn't free either. Whether or not you get to use it for free depends on how you interpret their licensing info and faq. MySQL's recommendation if you're confused (and many are) is to license the product or call one of their reps. Bottomline - mysql has a lot of marketshare, is improving, and I'm sure that it'll eventually be a credible product. But right now it's has a wide range of inexcusable problems. More info at http://sql-info.de/mysql/gotchas.html buck -- http://mail.python.org/mailman/listinfo/python-list