Programação, PHP, Javascript, HTML, CSS, Python
sexta, 3 de setembro

MySQL vs PostgreSQL

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)
Tags: ,

Leave a Comment

Sobre o autor

Alejandro Moraga é um cientista da computação. Atualmente é o Webmaster da FAPESP. Já foi o desenvolvedor de sistemas ERP e CRM na Internetmídia. Moraga também desenvolve frameworks, ferramentas, sistemas e sites em nome da empresa METS no qual é sócio junto com sua esposa, e é um pesquisador da Inteligência Artificial.

Mais artigos

Gerenciamento de dados hierárquicos no MySQL
Gerenciamento de dados hierárquicos no MySQL

A maioria dos usuários uma vez o outra tem lidado com dados hierárquicos em um banco de dados SQL e, sem dúvida [Leia mais]

Copiar tabelas e remover registros duplicados no MySQL
Copiar tabelas e remover registros duplicados no MySQL

Copie as tabelas ou remova os registros duplicados usando apenas comandos SQL [Leia mais]

Switch – Case no MySQL
Switch – Case no MySQL

Estruturas condicionais complexas no MySQL [Leia mais]