2

MySQL e PostgreSQL? Principais diferenças.

#PostgreSQL #MySQL
Rodrigo Sundfeld
Rodrigo Sundfeld

Introdução

É muito fácil encontrar serviços de hospedagem de sites que oferecem em seus planos os Sistemas Gerenciadores de Banco de Dados (SGDB) MySQL e PostgreSQL, embora isso seja mais comum com o primeiro. Como esses SGBD não são usados apenas na internet, talvez seja de seu interesse utilizá-los em seus projetos de software, uma vez que cada um é dotado de vantagens interessantes, como a gratuidade de uso.


Para facilitar a compreensão, segue uma lista com uma breve explicação sobre os recursos mais importantes:

- Referential integrity: também conhecido como "integridade referencial", esse recurso consiste em restrições ou regras existentes para uma correta inserção de dados, por exemplo, para impedir que uma tabela seja preenchida sem que isso ocorra em outra;

- Schemas: recurso que permite cruzar informações em um mesmo banco de dados, mas em estruturas diferentes;

- SQL: sigla para Structured Query Language, é uma linguagem utilizada em bancos de dados relacionais;

- SSL: sigla para Secure Sockets Layer, consiste em um protocolo para a troca segura de informações;

- Stored procedures: esse recurso consiste em comandos SQL "guardados" no servidor para, por exemplo, executar tarefas repetitivas, evitando que um cliente tenha que executá-las constantemente;

- Transactions: também conhecidas como transações, são instruções executadas em um bloco designado por parâmetros que indicam seu início e seu fim;

- Triggers: também chamados de gatilhos, são recursos que permitem o acionamento de uma sequência de comandos logo em seguida ou logo após um evento;

- Views: consistem em um tipo de tabela virtual formada por campos extraídos de uma tabela "verdadeira", facilitando o controle sob os dados acessados.


O banco de dados MySQL


O MySQL é um dos sistemas de gerenciamento de banco de dados mais populares que existe e, por ser otimizado para aplicações Web, é amplamente utilizado na internet. Sendo comum encontrar serviços de hospedagem de sites que ofereçam o MySQL e a linguagem PHP, justamente porque ambos trabalham muito bem em conjunto.

Outro fator que ajuda na popularidade do MySQL é sua disponibilidade para praticamente qualquer sistema operacional, como Linux, FreeBSD (e outros sistemas baseados em Unix), Windows e Mac OS X. Além disso, o MySQL é um software livre (sob licença GPL), o que significa que qualquer um pode estudá-lo ou alterá-lo conforme a necessidade.


Entre as características técnicas do SGBD MySQL, estão:


- Alta compatibilidade com linguagens como PHP, Java, Python, C#, Ruby e C/C++;

- Baixa exigência de processamento (em comparação como outros SGBD);

- Vários sistemas de armazenamento de dados (Database engine), MyISAM, MySQL Cluster, CSV, Merge, InnoDB, entre outros;

- Recursos como transactions, conectividade segura, indexação de campos de texto, replicação, etc;

- Instruções em SQL, como indica o nome.


O MySQL surgiu na Suécia pelas mãos de três colegas: Allan Larsson, David Axmark e Michael Monty Widenius, cuja primeira versão foi lançada no ano de 1996.

Um fato importante a ser destacado sobre o MySQL é que esse SGBD também possui uma licença comercial, isto é, paga. Neste caso, é possível obter suporte diferenciado dos desenvolvedores.

Vale ressaltar também que, em fevereiro de 2008, o MySQL foi comprado pela Sun Microsystems, que pagou a quantia de 1 bilhão de dólares pela aquisição.


O banco de dados PostgreSQL


O sistema gerenciador de banco de dados PostgreSQL teve seu início na Universidade de Berkeley, na Califórnia, em 1986. À época, um programador chamado Michael Stonebraker liderou um projeto para a criação de um servidor de banco de dados relacionais chamado Postgres, oriundo de um outro projeto da mesma instituição denominado Ingres. Essa tecnologia foi então comprada pela Illustra, empresa posteriormente adquirida pela Informix. Porém, mesmo diante disso, dois estudantes de Berkeley (Jolly Chen e Andrew Yu) compatibilizaram o Postgres à linguagem SQL. Este projeto recebeu o nome de Postgres95.

Em 1996, quando o projeto estava estável, o banco de dados recebeu o nome de PostgreSQL. No entanto, enquanto ainda possuía o nome Postgres95, o banco de dados teve várias mudanças. O seu código foi totalmente revisado e a linguagem SQL foi definida como padrão.

Tecnicamente falando, o PostgreSQL é um banco de dados relacional e orientado a objetos. Um de seus atrativos é possuir recursos comuns a banco de dados de grande porte, o que o deixa apto a trabalhar, inclusive, com operações de missão crítica. Além disso, trata-se de um banco de dados versátil, seguro, gratuito e de código aberto (disponível sob uma licença BSD).


Entre as características técnicas do PostgreSQL, estão:


- Compatibilidade multi-plataforma, ou seja, executa em vários sistema operacionais, como Windows, Mac OS X, Linux e outras variantes de Unix;

- Compatibilidade com várias linguagens, entre elas, Java, PHP, Python, Ruby, e C/C++;

- Base de dados de tamanho ilimitado;

- Tabelas com tamanho de até 32 TB;

- Quantidade de linhas de até 1.6 TB ilimitada;

- Campos de até 1 GB;

- Suporte a recursos como triggers, views, stored procedures, SSL, MVCC, schemas, transactions, savepoints, referential integrity e expressões regulares;

- Instruções em SQL, como indica o nome.


MySQL x PostgreSQL


Então, qual usar? Ambos são muito bons e não fazem feio diante das alternativas pagas. Além disso, possuem recursos e vantagens em comum, o que significa que, para a maioria das aplicações, ambos podem ser usados. Na verdade, o correto não é tentar descobrir qual é o melhor, mas em que situação um ou outro deve ser utilizado.


O PostgreSQL é otimizado para aplicações complexas, isto é, que envolvem grandes volumes de dados ou que tratam de informações críticas. Assim, para um sistema de comércio eletrônico de porte médio/alto, por exemplo ele mais interessante, já que é capaz de lidar de maneira satisfatória com o volume de dados gerado pelas operações de consulta e venda.


O MySQL, por sua vez, é focado na agilidade. Se a aplicação necessita de retornos rápidos e não envolve operações complexas, o MySQL é a opção mais adequada, pois é otimizado para proporcionar processamento rápido dos dados e tempo curto de resposta sem exigir muito do hardware. Se você precisa, por exemplo, de um banco de dados para armazenar o conteúdo do seu site, de seu fórum ou necessita manter um cadastro de usuários de um portal, o MySQL "serve como uma luva", pois tais aplicações não necessitam dos recursos avançados que o PostgreSQL oferece.


Para escolher um destes dois SGBD, procure entender bem quais recursos sua aplicação precisa. Tente estimar o volume de dados, avalie o hardware disponível, certifique-se das funcionalidades necessárias e, posteriormente, procure por informações mais detalhadas do MySQL e do PostGreSQL. Se sua aplicação for simples - principalmente se for algo ligado à internet -, não é preciso pensar muito: o MySQL é uma escolha satisfatória, pois é facilmente encontrado em serviços de hospedagem.

Todavia, há situações em que tanto o MySQL quanto o PostgreSQL serão boas escolhas. Nesses casos, é recomendável fazer testes com ambos e avaliar qual oferece mais vantagens à aplicação.

Finalizando

Um banco de dados pode ser a diferença entre ter e não ter um negócio, seja ele de qualquer porte. Por isso, a escolha deve ser bem feita e aspectos como desempenho, recursos, documentação e suporte devem ser considerados. Em todos esses pontos o MySQL e o PostgreSQL são excelentes, por isso, a escolha entre um deles só depende de sua aplicação.

5
34

Comentários (6)

1
Amanda Albuquerque

Amanda Albuquerque

08/06/2021 15:12

Parabéns pelo texto, está bem organizado é um boa referência para quem está começando a estudar bancos de dados.

1
J

Josué Nascimento

08/06/2021 11:42

Ótimo artigo, gostei da explicação sempre utilizei o MySQL, vou começar a experimentar o PostgreSQL.

1
Rosemeire Deconti

Rosemeire Deconti

08/06/2021 10:57

Grata pelo artigo! Parabéns!

1
Thiago Oliveira

Thiago Oliveira

08/06/2021 07:31

Ótimo artigo, ambos são ótimos bancos e ótimos de se trabalhar, e suas versões webs são intuitivas e precisas.


Tem horas que trabalho com SQL Server desejando arduamente que fossem como ambos T_T.


No demais parabéns

1
Lázaro Bonfim

Lázaro Bonfim

08/06/2021 02:15

Deixou claro as diferenças entre eles. Muito Bom.

1
Bruna Cursino

Bruna Cursino

08/06/2021 01:44

Ótimo artigo Rodrigo! Obrigada pela contribuição!

"Nunca é tarde para recomeçar. Quem quer realmente algo arranja um meio, quem não quer arranja uma desculpa."

Brasil