Nossos pensamentos, nossas atitudes, nossas emoções, tudo são formas de energia, constantemente influenciando o mundo a nossa volta. (Diane Dreher)

logo Moraga  
Principal
Categorias
Ferramentas

telescópio

Semanal Mensal Geral
  1. Converter Byte em KB, MB, GB, TB, EB
  2. Verificar CPF com PHP
  3. Jogo da velha ou Tic tac toe
  4. Captcha em PHP
  5. createElement - Solução compatível com os navegadores
  6. removeChild - Remover elementos HTML por Javascript
  7. Copiando tabelas e removendo registros duplicados no MySQL
  8. Gerando Thumbnails com PHP
  9. Removendo linhas e espaços em branco de strings
  10. Apache Expires Header - Cache de imagens, Javascript e CSS
  1. Converter Byte em KB, MB, GB, TB, EB
  2. Verificar CPF com PHP
  3. Captcha em PHP
  4. Jogo da velha ou Tic tac toe
  5. Copiando tabelas e removendo registros duplicados no MySQL
  6. createElement - Solução compatível com os navegadores
  7. removeChild - Remover elementos HTML por Javascript
  8. Gerando Thumbnails com PHP
  9. Removendo linhas e espaços em branco de strings
  10. Apache Expires Header - Cache de imagens, Javascript e CSS
  1. Converter Byte em KB, MB, GB, TB, EB
  2. Captcha em PHP
  3. Jogo da velha ou Tic tac toe
  4. createElement - Solução compatível com os navegadores
  5. Copiando tabelas e removendo registros duplicados no MySQL
  6. Apache Expires Header - Cache de imagens, Javascript e CSS
  7. Removendo linhas e espaços em branco de strings
  8. removeChild - Remover elementos HTML por Javascript
  9. Verificar se existe um valor no Array em Javascript
  10. Gerando Thumbnails com PHP
e-mail Enviar por e-mail imprimir Imprimir
SGBD/SQL

MySQL vs PostgreSQL

Por Alejandro Fernandez Moraga

MySQL Vs PostgreSQL MySQL Vs PostgreSQL

Comparação das versões novas, estáveis e de produção do PostgreSQL e MySQL.

 PostgreSQL 8.0MySQL 4.1MySQL 5.0 (beta)
Sistema OperacionalWindows, 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 outrosLinux, Windows, FreeBSD, Mac OS X, Solaris, HP-UX, AIX e outros
ANSI SQL complianceANSI-SQL 92/99Segue alguns padrões de ANSI SQLSegue alguns padrões de ANSI SQL
DesempenhoLentoRápidonão foi testado
Sub-selectsSimSimSim
TransaçõesSimSim
Somente em tabelas InnoDB
Sim
Replicação do banco de dadosSimSimSim
Suporte a chave estrangeira
Foreign Key
SimSim
Somente em tabelas InnoDB
Sim
ViewsSimNãoSim
Stored proceduresSimNãoSim
TriggersSimNãoSim
UnionsSimSim
Desde 4.0
Sim
Full joinsSimNãoNão
Planejado para a versão 5.1
ConstraintsSimNãoNão
Planejado para a versão 5.1
CursorsSimNãoParcial
(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ãoSim
Suporta stored procedures (modulos persistentes) e linguagens que são definidas por ANSI/SQL 2003
Vacuum (cleanup)SimSim
por otimização de tabelas (OPTIMIZE TABLE)
Sim
por otimização de tabelas (OPTIMIZE TABLE)
Different table typesNã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)
ODBCSimSimSim
JDBCSimSimSim
Outras APIsMaioria das linguagens (i.e. Perl, C/C++, .NET, OLE-DB, Tcl/Tk, Python, PHP, ...)Maioria das linguagensMaioria das linguagens
Suporte IPv6SimNã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)

Referências

Comentários
  • Rafael Teixeira 29 de Janeiro de 2009 17:20

    Olá, sobre a comparação de velocidades, acho que o MySQL estava com uma vantagem injusta.
    Por usar o MyIsam por padrão (tipo sem integridade relacional), ela sempre vai ser mais rápida. Esse é o objetivo da MyIsam.
    Um detalhe, eu utilizo o MySQL sempre que posso, então não estou defendendo o PostgreSQL por achar melhor.
    É só um parâmetro que deve ser levado em consideração ao fazer comparações de desempenho.
    E parabéns pelo site, muito bom.

    Abraços

  • Alejandro Moraga 31 de Janeiro de 2009 11:09

    Muito obrigado pelo comentário Rafael!

    A comparação pode parecer um tanto injusta, mas não é. Não sou adepto ao MySQL ou PostgreSQL. Eu acredito que temos que conhecer todas as alternativas possíveis e saber onde utilizar cada uma.

    Como você disse, o objeto do MyISAM é ser extremamente rápido e conseguiu. Os comandos SELECT são muito rápidos quando comparados com PostgreSQL e Oracle. Porém, o custo é muito alto - tabelas sem consistência de dados.

    A pouco tempo o MySQL implementou a integridade referencial, conhecido por InnoDB. Esse padrão também não deixa a desejar, é bem rápido. Conseguimos mais desempenho ao separar servidores somente para consulta e outros para INSERT, UPDATE, etc.

    Vale lembrar que o MySQL é pessímo para grande quantidades de acessos, se torna instável facilmente. O Oracle e PostgreSQL são lentos para poucos acessos, mas aguentam muito mais acessos.

    Agora é preciso analisar. Um site pode usar e abusar de cache. Cache em memória e cache em pagína fria são duas opções, mas existem outras. O cache descarta a grande quantidade de acessos no banco, então não é necessário ter um banco que aguente todos esses acesso, e sim que seja rápido.

    Precisamos analisar bem cada situação é optar pela melhor solução.

    Abraços

  • Stephan de Souza 20 de Janeiro de 2010 13:47

    Bom antes de perder meu post comentava do por que dessa absurda comparação entre 2 versões obsoletas o MySQL 4.1 e PgSQL 8.

    A 4.1 acabou nesta virada de ano a lincesa extendida, lembrando extendida: http://www.mysql.com/support/eol-notice.html

    A versão do MySQL 5.1 já se encontra disponível há muito tempo, além das ótimas versões 8.3 e 8.4 do PgSQL. Acredito não haver necessidade de comparar versões obsoletas para projetos novos, ou meu TI está enganado?


Comentar
captcha