O que é MySQL?
MYSQL é um sistema DBMS popular e amplamente utilizado. O nome foi tirado da garota My, que é filha do co-fundador Michael Widenius. O código-fonte do MYSQL está disponível sob a GNU GPL. O projeto pertence e é mantido pela Oracle Corporation.
É um RDBMS (Relational Database Management System) e funciona principalmente no modelo de banco de dados relacional. Isso torna a administração do banco de dados mais fácil e flexível.
O que é PostgreSQL?
Postgre é um sistema de gerenciamento de banco de dados relacional de objeto (ORDBMS). Ele foi desenvolvido no Departamento de Ciência da Computação da Universidade da Califórnia. Postgres foi pioneiro em muitos conceitos.
Postgre é um sistema de banco de dados relacional de classe empresarial. É fácil de configurar e instalar. Oferece suporte para SQL e NoSQL. Tem uma grande comunidade que ficará feliz em atendê-lo quando você estiver enfrentando problemas ao usar o PostgreSQL.
Neste tutorial, você aprenderá mais sobre -
- História do MySQL
- História do PostgreSQL
- Por que usar o MySQL?
- Por que usar PostgreSQL?
- Recursos do MySQL
- Recursos do PostgreSQL
- Principais diferenças entre MySQL e PostgreSQL
- Desvantagens de usar MySQL
- Desvantagens de usar PostgreSQL
- O que é melhor?
História do MySQL
- MySQL foi criado por uma empresa sueca chamada MySQL AB 1995
- A Sun adquiriu a MySQL AB por 1 bilhão de dólares no ano de 2008
- A Oracle comprou a Sun em 2010 e, assim, adquiriu o MySQL
- Em 2012, o MySQL foi bifurcado no MariaDB pelo fundador Michael Widenius sob a empresa Monty Program Ab
- MariaDB substitui o MySQL para a maioria das distribuições no ano de 2013
- Monty Program Ab fundido com SkySQL- 2013
- SkySQL Ab renomeado para MariaDB Corporation- 2014
História do PostgreSQL
- INGRES foi desenvolvido-1977
- Michael Stonebraker e seus colegas desenvolveram o Postgres- 1986
- Suporte para ACID e PL / pgSQL reais - 1990
- Lançado como Postgres95 em -1995
- Postgres95 relançado como PostgreSQL 6.0 - 1996
- MVCC, GUC, controles de sintaxe de junção e carregador de linguagem procedural adicionados - 1998-2001
- Versão 7.2 a 8.2: Recursos incluídos, como suporte a esquema, Nonblocking VACUUM, Roles e dblink - 2002-2006
- PostgreSQL 8.4 lançado em 2009
- PostgreSQL 9.0 lançado em 2010
- NYCPUG (Grupo de usuários PostgreSQL da cidade de Nova York) junta-se à PgUS (associação PostgreSQL dos Estados Unidos) - 2013
- PGconf organizado-2014
DIFERENÇA CHAVE:
- PostgreSQL é um sistema de gerenciamento de banco de dados relacional de objeto (ORDBMS), enquanto o MySQL é um sistema DBMS conduzido pela comunidade.
- PostgreSQL oferece suporte a recursos de aplicativos modernos como JSON, XML etc., enquanto o MySQL oferece suporte apenas a JSON.
- O PostgreSQL tem um bom desempenho ao executar consultas complexas, enquanto o MySQL tem um bom desempenho em sistemas OLAP e OLTP.
- PostgreSQL é totalmente compatível com ACID, enquanto o MySQL é apenas compatível com ACID quando usado com InnoDB e NDB.
- PostgreSQL oferece suporte a visualizações materializadas, enquanto o MySQL não oferece suporte a visualizações materializadas.
Por que usar o MySQL?
Aqui estão algumas razões importantes para usar MYSQL:
- Oferece suporte a recursos como Replicação Mestre-Escravo, Expansão
- Ele suporta relatórios de descarregamento, distribuição de dados geográficos, etc.
- Sobrecarga muito baixa com mecanismo de armazenamento MyISAM quando usado para aplicativos principalmente de leitura
- Suporte para mecanismo de armazenamento de memória para tabelas usadas com frequência
- Cache de consulta para instruções usadas repetidamente
- Você pode facilmente aprender e solucionar problemas do MySQL a partir de diferentes fontes, como blogs, white papers e livros
Por que usar PostgreSQL?
Os principais motivos para usar o PostgreSQL são:
- Oferece recursos úteis, como particionamento de tabelas, recuperação pontual, DDL transacional, etc.
- Capacidade de utilizar Key Stores de terceiros em uma infraestrutura PKI completa
- Os desenvolvedores podem modificar o código-fonte aberto, uma vez que é licenciado sob BSD sem a necessidade de contribuir com melhorias
- Os fornecedores independentes de software podem redistribuí-lo sem medo de serem "infectados" por uma licença de código aberto
- Usuários e funções podem receber privilégios de nível de objeto
- Suporta AES, 3DES e outros algoritmos de criptografia de dados.
Recursos do MySQL
- MySQL é um sistema DBMS voltado para a comunidade
- Compatível com várias plataformas usando todas as principais linguagens e middleware
- Oferece suporte para controle de simultaneidade de várias versões
- Compatível com o padrão ANSI SQL
- Permite a replicação SSL baseada em log e baseada em gatilho
- Orientado a objetos e compatível com ANSI-SQL2008
- Design multicamadas com módulos independentes
- Totalmente multi-threaded, usando Kernel Threads
- Servidor disponível em banco de dados embutido ou modelo de servidor cliente
- Oferece ferramentas integradas para análise de consulta e análise de espaço
- Ele pode lidar com qualquer quantidade de dados, até 50 milhões de linhas ou mais
- O MySQL é executado em muitas variedades de UNIX, bem como em outros sistemas não UNIX, como Windows e OS / 2
Recursos do PostgreSQL
- Uma comunidade ativa que está acelerando seu desenvolvimento
- Alternativa mais comum para Oracle, DB2 e SQL Server
- Funciona em todas as principais plataformas de sistema operacional que você possa ter
- MVCC oferece suporte a um grande número de usuários simultâneos
- Indexação extensiva para relatórios de alto desempenho
- Suporte para aplicativos modernos (XML e JSON)
- Suporte ANSI SQL para habilidades / código transportáveis
- Suporte a chaves estrangeiras para armazenamento eficiente de dados
- Junções de tabelas e visualizações para recuperação flexível de dados
- Gatilhos / procedimentos armazenados para programas e transações complexas
- Replicação para backup de dados e escalabilidade de leitura
Diferenças entre MySQL e PostgreSQL
Parâmetro | MYSQL | PostgreSQL |
Código aberto | O projeto MySQL disponibilizou seu código-fonte sob os termos da GNU General Public License. | PostgreSQL é lançado sob a licença PostgreSQL, que é uma licença Open Source gratuita. Isso é semelhante às licenças BSD e MIT. |
Conformidade com ácido | O MySQL é compatível com ACID apenas quando usado com os mecanismos InnoDB e NDB Cluster Storage. | PostgreSQL é totalmente compatível com ACID. |
Compatível com SQL | O MySQL é parcialmente compatível com SQL. Por exemplo, ele não oferece suporte à restrição de verificação. | PostgreSQL é amplamente compatível com SQL. |
Suporte da comunidade | Possui uma grande comunidade de colaboradores que se concentram principalmente na manutenção dos recursos existentes, com novos recursos surgindo ocasionalmente. | A comunidade ativa melhora constantemente os recursos existentes, enquanto sua comunidade inovadora se esforça para garantir que continue sendo o banco de dados mais avançado. Novos recursos de ponta e aprimoramentos de segurança lançados regularmente. |
Desempenho | É usado principalmente para projetos baseados na web que precisam de um banco de dados para transações diretas de dados. | É muito usado em grandes sistemas onde as velocidades de leitura e gravação são importantes |
Mais adequado | O MySQL tem um bom desempenho em sistemas OLAP e OLTP quando apenas velocidades de leitura são necessárias. | O PostgreSQL tem um bom desempenho ao executar consultas complexas. |
Suporte para JSON | O MySQL tem suporte para o tipo de dados JSON, mas não oferece suporte para nenhum outro recurso NoSQL. | Suporte JSON e outros recursos NoSQL, como suporte XML nativo. Ele também permite a indexação de dados JSON para acesso mais rápido. |
Suporte para visualizações materializadas | Suporta visualizações materializadas e tabelas temporárias. | Suporta tabelas temporárias, mas não oferece visualizações materializadas. |
Ecossistema | MySQL tem um ecossistema dinâmico com variantes como MariaDB, Percona, Galera, etc. | O Postgres tem opções limitadas de alta tecnologia. No entanto, ele está mudando com novos recursos introduzidos na versão mais recente. |
Valores padrão | Os valores padrão podem ser substituídos no nível da sessão e no nível da instrução | Os valores padrão podem ser alterados apenas no nível do sistema |
Índices de árvore B | Dois ou mais índices de árvore B podem ser usados quando for apropriado. | Índices de árvore B mesclados em tempo de execução para avaliação são predicados convertidos dinamicamente. |
Estatísticas de objeto | Estatísticas de objetos razoavelmente boas | Estatísticas de objetos muito boas |
Perguntas sobre o Stack Overflow | 532K | 89,3K |
Recursos de união | Limitar capacidades de junção | Boas capacidades de junção |
Estrelas do GitHub | 3,34k | 5,6k |
Forks | 1,6k | 2,4 k |
Empresas proeminentes que usam o produto | Airbnb, Uber, Twitter | Netflix, Instagram, Groupon |
Desvantagens de usar MySQL
- As transações relacionadas ao catálogo do sistema não são compatíveis com ACID
- Algum tempo Uma falha do servidor pode corromper o catálogo do sistema
- Nenhum módulo de autenticação conectável impedindo conta gerenciada centralmente
- Não há suporte para funções, por isso é difícil manter os privilégios para muitos usuários
- Os procedimentos armazenados não podem ser armazenados em cache
- As tabelas usadas para o procedimento ou gatilho são sempre pré-bloqueadas
Desvantagens de usar PostgreSQL
- As soluções externas atuais exigem uma alta curva de aprendizado
- Sem facilidade de atualização para lançamentos principais
- Os dados precisam ser exportados ou replicados para a nova versão
- É necessário armazenamento duplo durante o processo de atualização
- índices não podem ser usados para retornar diretamente os resultados de uma consulta
- Planos de execução de consulta não são armazenados em cache
- Operações de carregamento em massa podem se tornar vinculadas à CPU
- Suporte de fornecedor de software independente esparso
O que é melhor?
Depois de comparar os dois, podemos dizer que o MySQL fez um grande trabalho de aprimoramento para se manter relevante, mas por outro lado, para o PostgreSQL, você não precisa de nenhuma licença. Ele também oferece herança de tabelas, sistemas de regras, tipos de dados personalizados e eventos de banco de dados. Portanto, certamente está acima do MySQL.