sábado, 20 de fevereiro de 2010

Comparativo PostgreSQL / MySQL- OFF TOPIC!

Comparativo PostgreSQL / MySQL- OFF TOPIC!

Comparativo PostgreSQL / MySQL

Normalmente, ao iniciar um projeto com base em software livre temos dúvida sobre qual gerenciador de banco de dados utilizar, e quais são as reais diferenças e particularidades de cada um deles. Neste artigo vou avaliar os dois principais gerenciadores, porém existem outras alternativas de código aberto que devem ser analisadas, como o Firebird. Apesar de existirem muitas diferenças que devem ser levadas em consideração entre os gerenciadores, farei um levantamento das principais diferenças encontradas e as principais características apresentadas na hora de desenvolver seu sistema, preparar o ambiente e colocá-lo em produção.

De forma geral, o PostgreSQL segue a risca os padrões para banco de dados (assim como o Oracle, por isso existe uma certa familiaridade na utilização entre eles), já o MySQL possui algumas particularidades mistas em seu funcionamento e esse é o principal motivo pelo qual os usuários vindos do MySQL podem achar os comandos e a utilização do PostgreSQL “estranha” a primeira vista.

Existe um certo mito que passa entre os desenvolvedores de que o MySQL é mais rápido, porém menos estável que o PostgreSQL na manipulação de dados, porém isso deixou de ser verdade a partir das últimas versões, que apresentam praticamente a mesma velocidade e apresentam grande estabilidade na manipulação dos dados.

Um ponto muito importante a ser analisado é a performance do servidor responsável pelo banco, de maneira geral o MySQL exige um maior consumo de recursos da máquina em sua utilização padrão para apresentar maior performance enquanto o PostgreSQL é mais escalonável em termos de controle de recursos e pode ser mais bem dimensionado e modelado independente da arquitetura ou servidor utilizado.

Um dos principais diferenciais do PostgreSQL está na manipulação de “transactions” de forma padrão, enquanto para que o MySQL possa realizar este tipo de operação deve ser utilizada a engine InnoDB (enquanto o padrão do banco e a engine que apreseta maior performance é MyISAM), sendo que outra particularidade da engine InnoDB é o suporte a “foreign keys”que também é padrão no PostgreSQL.

Em termos de clusterização, ambos os gerenciadores apresentam recursos muito interessantes para ambientes grandes e de alta disponibilidade, porém em ambientes onde existe um alto volume de transações por segundo o PostgreSQL apresenta uma escalabilidade maior amenizando assim o impacto na performance do sistema, já o MySQL trata todas as requisições de forma bastante robusta porém apresentando uma carga um pouco maior no servidor utilizando InnoDB como engine, já com MyISAM a performance aumenta considerávelmente consumindo os mesmos recursos da máquina.

De modo geral, em sistemas transacionais com consultas complexas e alto nível de processamento o PostgreSQL é uma solução mais robusta que apresenta alta performance e escalabilidade. Já o MySQL é recomendável para sistemas com consultas mais simples e com alto número de consultas, apresentando alta performance e com administração mais simplificada.

Não se esqueça que este é o meu ponto de vista feito com base nos ambientes que minha equipe administra e podem existir ambientes ou configurações que apresentem resultados diferentes dos apresentados. Existem diversas fontes de informações técnicas disponíveis para os gerenciadores de banco de dados sendo que a maior parte está disponível nos próprios sites oficiais, e estão disponíveis também diversos benchmarks que podem ser úteis para ter uma base de seu funcionamento em ambiente crítico.

Nenhum comentário: