MySQL versus PostgreSQSL
This is a religious topic like Vim versus Emacs or Amiga versus Atari or Debian versus Windows. You will hardly get an unbiased opinion. Each party will defend their database software because they believe it's undoubtedly superior to the other. Here are my reasons for one over the other. I'm basing my experience on MySQL 5.0 and PostgreSQL 8.1.
Pro PostgreSQL
- The rather comfortable "psql" console utility
- SERIAL type for explicit incrementing of indexes
- Mostly SQL92 compliant
- Data types for geographic locations or network addresses
- Functions can be written in many languages like Python, Perl, C, ...
Con PostgreSQL
- no decent GUI (pgadmin3 is buggy and uncomfortable although the best there is)
- Vacuuming is done by an external process (which - if it fails to run - leads to huge databases when rows are changed frequently)
Pro MySQL
- Data types for SETs and ENUMerations
- phpmyadmin is a very good web interface (although it requires PHP and Apache to run)
Con MySQL
Misses standard SQL92 like the || operator for concatenating strings
- Confusing old MyISAM tables that lack important features like foreign keys - InnoDB should always be used
