| PostgreSQL 8.0 | MySQL 4.1 | MySQL 5.0 (beta) | |
| Sistema Operacional | Windows, mais que 2 dezenas de sistemas operacionais baseados em UNIX (Linux, todos BSD, HP-UX, AIX, OS X, Unixware, Netware,…) | Linux, Windows, FreeBSD, Mac OS X, Solaris, HP-UX, AIX e outros | Linux, Windows, FreeBSD, Mac OS X, Solaris, HP-UX, AIX e outros |
| ANSI SQL compliance | ANSI-SQL 92/99 | Segue alguns padrões de ANSI SQL | Segue alguns padrões de ANSI SQL |
| Desempenho | Lento | Rápido | não foi testado |
| Sub-selects | Sim | Sim | Sim |
| Transações | Sim | Sim Somente em tabelas InnoDB |
Sim |
| Replicação do banco de dados | Sim | Sim | Sim |
| Suporte a chave estrangeira Foreign Key |
Sim | Sim Somente em tabelas InnoDB |
Sim |
| Views | Sim | Não | Sim |
| Stored procedures | Sim | Não | Sim |
| Triggers | Sim | Não | Sim |
| Unions | Sim | Sim Desde 4.0 |
Sim |
| Full joins | Sim | Não | Não Planejado para a versão 5.1 |
| Constraints | Sim | Não | Não Planejado para a versão 5.1 |
| Cursors | Sim | Não | Parcial (Somente em modo de leitura – Ready only) |
| Procedural languages (PLs) | Sim PL/pgSQL, PL/Tcl, PL/Perl, PL/Python, PL/PHP, PL/Java ou uso indefinido |
Não | Sim Suporta stored procedures (modulos persistentes) e linguagens que são definidas por ANSI/SQL 2003 |
| Vacuum (cleanup) | Sim | Sim por otimização de tabelas (OPTIMIZE TABLE) |
Sim por otimização de tabelas (OPTIMIZE TABLE) |
| Different table types | Não (PostgreSQL tem somente seu próprio tipo e não usa outros alternativos) |
Sim MyISAM, InnoDB, MEMORY, BerkeleyDB, MERGE, Archive and NDB (Cluster) (InnoDB tem funcionalidade adicional) |
Sim MyISAM, InnoDB, MEMORY, BerkeleyDB, MERGE, Archive and NDB (Cluster) (InnoDB tem funcionalidade adicional) |
| ODBC | Sim | Sim | Sim |
| JDBC | Sim | Sim | Sim |
| Outras APIs | Maioria das linguagens (i.e. Perl, C/C++, .NET, OLE-DB, Tcl/Tk, Python, PHP, …) | Maioria das linguagens | Maioria das linguagens |
| Suporte IPv6 | Sim | Não “Até o momento não, mas pode trabalhar em ambiente IPv6.” |
Não Planejado para a versão 5.1 |
Em geral
MySQL
- MySQL é relativamente mais rápido que o PostgreSQL.
- Handlers de conexões MySQL são muito rápidos, tornando-o adequado para utilizar na Web.
- Modelagem simples de banco de dados.
- Replicação do MySQL foi exaustivamente testado.
- Não há necessidade de limpezas no MySQL.
PostgreSQL
- Modelagem complexa de banco de dados.
- Configuração de regras complexas (regras de negócio).
- Uso de linguagens procedurais no servidor.
- Transações
- Uso de stored procedures
- Uso de dados geográficos
- R-Trees (Usado como índices)