Pro:
The most widely-used RDBMS in Python, so lots of developer support.
One of the easiest SQL languages to understand.
Can do date calculations and pattern searches at the C level (faster than doing it in Python). This also applies to most other RDBMSs.
Many books and MySQL third party tools are available. -- ChuckEsterbrook - 31 Dec 2001
High availability among web host providers. -- ChuckEsterbrook - 31 Dec 2001
It's OpenSource. -- ChuckEsterbrook - 31 Dec 2001
Con:
MySQL was designed for write occasionally, read quickly, rather than for intense write-frequently situations.
Transactions were added recently and are available only with a non-default data storage type.
MySQL is easier to crash under high load than PostgreSQL or Oracle.
-- MikeOrr - 31 Dec 2001
Nowadays it is best to use UTF-8 encoded strings throughout your application. Here is how you can configure MySQL to work with UTF-8, if you were using latin-1 before.
Adapt your configuration in /etc/mysql/my.cnf:
[mysqld] character-set-server=utf8 collation-server=utf8_general_ci default-character-set=utf8 skip-character-set-client-handshake
Using mysql oder phpmyadmin:
SHOW VARIABLES LIKE 'char%'
This should look like:
character_set_client utf8 character_set_connection utf8 character_set_database latin1 character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/
Restart the server:
/etc/init.d/mysql restart
If you already have data stored, change the encoding in the database dump from varchar(n) to varchar(n) collate utf8_unicode_ci and change the DEFAULT CHARSET=latin1 to DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci.
See also: http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html (note the post by Yuri Tsarev) and http://tahpot.blogspot.com/2005/06/mysql-and-python-and-unicode.html
-- Tobias - 14 Apr 2010