MongoDB VS MySQL

MySQL

O MySQL é um sistema de gerenciamento de uma base de dados relacional opensource (RDBMS) desenvolvida, distribuída e suportada pela Oracle Corporation. Como outros sistemas relacionais, o MySQL armazena dados nas tabelas e usa a linguagem de consulta estruturada (SQL) para aceder á base de dados. No MySQL,  é pré elaborado o esquema da base de dados com base nos seus requisitos e configura as regras necessárias para gerir as relações entre os campos nas tabelas. No MySQL, as informações relacionadas podem ser guardadas em tabelas separadas, mas associadas através do uso de associações. Desta forma, a duplicação de dados é minimizada.

MongoDB

MongoDB é uma base de dados opensource desenvolvida pela MongoDB, Inc. MongoDB armazena os dados em documentos semelhantes ao formato de dados JSON, que pode variar na sua estrutura. As informações relacionais são guardadas em conjunto para existir um rápido acesso ás consultas através do linguagem de consulta do MongoDB. MongoDB usa esquemas dinâmicos, o que significa que se pode criar registos sem primeiro definir a estrutura, como os campos ou os tipos dos seus valores. Pode-se alterar a estrutura dos registos (que chamamos de documentos) simplesmente adicionando novos campos ou excluindo os existentes. Este modelo de dados oferece a capacidade de representar relacionamentos hierárquicos, armazenar arrays e outras estruturas mais complexas de uma forma mais simplificada. Os documentos numa coleção não precisam de ter um conjunto de campos idêntico e a desnormalização de dados é comum. O MongoDB também foi projetado com alta disponibilidade e escalabilidade em mente.

 

Terminologias e Conceitos

Esta tabela descreve alguns dos conceitos comuns entre MySQl e MongoDB.

MySQL MongoDB
Table Collection
Row Document
Column Field
Joins Embedded documents, linking

 

Comparação

Como o MySQL, o MongoDB oferece um rico conjunto de recursos e funcionalidades muito superiores ás key-value databases. O MongoDB possui uma linguagem de consulta, índices secundários altamente funcionais (incluindo procura de texto e geoespacial), uma poderosa estrutura de agregação para análise de dados e muito mais. Com o MongoDB, também se pode usar esses recursos em tipos de dados mais diversos do que com uma base de dados relacional e em escala.

MySQL MongoDB
Rich Data Model No Yes
Dynamic Schema No Yes
Typed Data Yes Yes
Data Locality No Yes
Field Updates Yes Yes
Easy for Programmers No Yes
Complex Transactions Yes No
Auditing Yes Yes
Auto-Sharding No Yes

 

Query Language

Tanto o MySQL quanto o MongoDB possuem uma linguagem de consulta bastante rica e elaborada.

MySQL MongoDB
INSERT INTO utilizadores (utilizador_id, idade, estado)
VALUES ('teste001', 40, 'B')
db.utilizadores.insert({
  utilizador_id: 'teste001',
  idade: 40,
  estado: 'B'
})
SELECT * FROM utilizadores
db.utilizadores.find()
UPDATE utilizadores SET estado = 'C'
WHERE idade > 25
db.utilizadores.update(
  { idade: { $gt: 25 } },
  { $set: { estado: 'C' } },
  { multi: true }
)

 

MongoDB ao invés MySQL

Várias organizações estão a optar pela base de dados MongoDB porque permite que eles criem aplicações mais rapidamente, manipulem os mais diversos tipos de dados e possam gerir as aplicações de forma mais eficiente e em escala.

O desenvolvimento é simplificado, pois os documentos MongoDB são desenhados para linguagens de programação modernas e orientadas a objetos. O uso do MongoDB remove a complexa camada de Object-relational mapping (ORM) que traduz objetos no código para tabelas relacionais.

O modelo de dados flexível do MongoDB também significa que o seu esquema de base de dados pode evoluir com os requisitos do projeto. Por exemplo, as mudanças de esquematização que levam dias da semanas nas bases de dados MySQL do Weather Channel podem ser feitas em apenas algumas horas com o MongoDB.

O MongoDB também pode ser dimensionado dentro e entre vários centros de dados distribuídos, fornecendo novos níveis de disponibilidade e escalabilidade anteriormente impossíveis de serem alcançados com base de dados relacionais como o MySQL. À medida que as suas implementações crescem em termos de volume de dados e throughput, o MongoDB é escalado facilmente sem tempo de inatividade e sem alterar a aplicação. Em contraste, alcançar o escalonamento com o MySQL requer frequentemente um trabalho elaborado por especialistas em base de dados e que demora bastante tempo. Um caso real, o Baidu migrou do MySQL para o MongoDB para suportar o seu negócio que está a ter um rápido crescimento. O gigante chinês , provedor de serviços de internet agora possui mais de 100 aplicações e gere mais de 1PB de dados com seu cluster MongoDB.

Saber mais…

Siga a Leak no Google Notícias e não perca todas as informações mais importantes.

Leia também

Afinal quais os sintomas de que o seu carro está mesmo a avariar?

A maioria das avarias são precedidas de sinais de aviso. É isso mesmo a que tem de dar atenção nesta altura de férias. É...

Burlões adoram o WhatsApp e Telegram para esquemas por isto!

Já deve ter reparado que os burlões adoram utilizar o WhatsApp e o Telegram para as suas artimanhas. Isto porque é mais fácil conduzir...

Calor: sabe que temperatura atinge o interior do seu automóvel?

As temperaturas vão aquecer transformando os interiores dos automóveis em verdadeiros fornos. Mesmo que o ar condicionado do seu veículo esteja em boas condições...

Atenção: o calor vai apertar e não pode deixar isto no seu carro!

Nos próximos dias o calor vai apertar e por isso mesmo tem de atenção às coisas que normalmente costuma deixar no carro. Estando um...

Bateria do carro morreu: é possível recarregar ou deve trocar?

As baterias dos automóveis necessitam de ser substituídas de poucos em poucos anos após o desgaste normal. No entanto, as baterias novas perdem por...

Cuidado se receber uma chamada das Clínicas CUF a contratar!

O desemprego aumentou face ao final do ano passado e como tal não é de estranhar que todas as oportunidades sejam bem-vindas. No entanto,...

Newsletter Leak

Receba todas as notícias e destaques diretamente no e-mail. É grátis!

Artigos relacionados