A formação mais procurada no Mundo.

Principais diferenças entre MongoDB e MySQL ou outro RDBMS

mondodb-800x450 Principais diferenças entre MongoDB e MySQL ou outro RDBMS Banco de Dados MongoDB vantagens NoSQL mysql mongodb diferenças entre MongoDB e MySQL desvantagens banco de dados
foto_ramos-120x120 Principais diferenças entre MongoDB e MySQL ou outro RDBMS Banco de Dados MongoDB vantagens NoSQL mysql mongodb diferenças entre MongoDB e MySQL desvantagens banco de dados

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.
foto_ramos-120x120 Principais diferenças entre MongoDB e MySQL ou outro RDBMS Banco de Dados MongoDB vantagens NoSQL mysql mongodb diferenças entre MongoDB e MySQL desvantagens banco de dados

NoSQL,  nos últimos anos passou de um simples zum zum zum para uma realidade atual. Portanto, como, onde e quando devemos utiliza-lo é a grande questão para muitos gestores que ainda não conseguiram assimilar a nova tendência.

Como profundo conhecedor de ambos (NoSQL e RDBMS) irei listar abaixo um resumo de melhores práticas onde cada tipo será melhor utilizado. 

Melhores Práticas para MongoDB

Produtos NoSQL (MongoDB e entre eles) devem ser utilizados para enfrentar os desafios. Se você tiver um dos seguintes desafios abaixo, você deve considerar MongoDB:

Altas cargas de escrita

O MongoDB por padrão prefere altas taxas de inserção ao invés da segurança da transação. Se você precisar carregar toneladas de linhas de dados com um valor de negócio baixo para cada um, MongoDB deve servir. Não faça isso com a gravação de transações US $ 1 milhão ou pelo menos nestes casos faça com uma segurança extra.

Você precisa de alta disponibilidade em um ambiente não confiável (Cloud e Vida Real)

Definir replicaSet (conjunto de servidores que atuam como Master-Slaves) é fácil e rápido. Além disso, a recuperação de um nó (ou um centro de dados) de uma falha é instantâneo, seguro e automático.

Seus dados irão crescer muito e você precisará dividi-los 

Bases de dados de grande escala é difícil (uma única apresentação da tabela MySQL irá degradar ao cruzar  5-10GB por tabela). Se você necessitar particionar e dividir os dados de seu banco de dados, o MongoDB possui uma solução fácil para isso.

performgram_ferramenta_instagram-e1516495147394 Principais diferenças entre MongoDB e MySQL ou outro RDBMS Banco de Dados MongoDB vantagens NoSQL mysql mongodb diferenças entre MongoDB e MySQL desvantagens banco de dadosSeus Dados são Baseados por Localização

MongoDB foi construído em funções espaciais, de modo que para encontrar dados relevantes a partir de locais específicos é rápido e preciso.

Seu Data Set vai ser grande (a partir de 1GB) e o Schema não é estável

Adicionar novas colunas para RDBMS pode bloquear todo o banco de dados em algum outro banco de dados, ou até mesmo criar uma grande degradação de carga e desempenho em um outro. Normalmente, isso acontece quando o tamanho da tabela é maior do que 1 GB (e pode ser uma grande dor de cabeça para um sistema como BillRun que é descrito abaixo e tem vários TB em uma única tabela). Como MongoDB não possui schemas, adicionar um novo campo, não afetará linhas antigas (ou documentos) e será de forma instantânea. Outro vantagem é que você não precisa de um DBA para modificar o esquema quando houver qualquer mudança em ou de aplicações. Todos sabemos que em muitas empresas, uma simples tarefa envolvendo alterações de Schemas, Tabelas envolvem reuniões intermináveis e até mesmo aprovações infinitas que tomam muito tempo.

Você não tem um DBA em seu quadro de funcionários

Se você não tem um DBA e também não quer normalizar seus dados ou fazer joins, você deve considerar o MongoDB. MongoDB é perfeito para classes de persistência, pois como as classes podem ser serializadas para JSON e armazenadas COMO SÃO no MongoDB. Nota: Se você pretende lidar com grandes massas de dados, por favor, note que você terá que seguir algumas das melhores práticas para evitar armadilhas.

 

O fim do UPDATE sem WHERE

O MongoDB foi criado pensando no desenvolvedor. Se você fizer um UPDATE, ele irá alterar apenas a primeira ocorrência. 
Pra fazer o UPDATE pra todos os registros, você tem que deixar claro que é isso que quer fazer.

Full text search

No bancos de dados tradicionais, se você quiser fazer uma busca por um cliente que tenha, por exemplo, o nome Paulo. Você fará algo como:

SELECT * from Cliente WHERE Nome LIKE '%Paulo%'

E essa query vai me retornar todos os clientes que tenham exatamente a palavra Paulo no nome: seja o primeiro nome, nome do meio ou sobrenome.

No MongoDB, você pode buscar por Paulo, mas essa busca irá retornar não apenas quem quem exatamente Paulo no nome, mas palavras com fonéticas parecidas: Paulista, pauleira, etc.

Busca geoespacial

Se você quiser trazer todos os CEPs no raio de 1km, você pode passar uma latitude e longitude para o Mongo e ele te dará essa resposta.

Veja mais detalhes aqui.

Registros com validade

Você pode dizer para o MongoDB que quer que um determinado tipo de registro expire após um tempo.

Pense em tabelas de log, por exemplo. Nem sempre você quer guardar logs da sua aplicação de um ano atrás, certo? 
Nos bancos de dados relacionais você tem duas opções pra que isso aconteça: 
1- você exclui manualmente estes registros depois de um tempo. 
2- você cria uma rotina que irá excluir esses registros depois de um tempo.

No MongoDB isso não é necessário. Você diz para ele qual a validade desse registro, e voilá. Ele limpa e você não se preocupa mais.

Essas são só algumas das vantagens do Mongo, há outras.

Caso de estudo no mundo real :  Billing

 Principais diferenças entre MongoDB e MySQL ou outro RDBMS Banco de Dados MongoDB vantagens NoSQL mysql mongodb diferenças entre MongoDB e MySQL desvantagens banco de dadosNa última ILMUG, Ofer Cohen apresentou o BillRun, uma solução Open Source de Billing  da próxima geração que utiliza MongoDB como seu armazenamento de dados. Este sistema de faturamento é executado em produção em no mais rápido ambiente em crescimento, em uma operadora de celular em Israel, onde ele processa mais de 500 milhões de CDRs (registros de dados de chamadas) a cada mês. Em sua apresentação, Ofer apresentou como este sistema utiliza vantagens MongoDB:

  1.  O projeto sem a utilização de Shemas permite a rápida introdução de novos tipos de CDR para o sistema. Deixando assim o BillRun manter o armazenamento de dados genérico.
  2. Em escala de produção, o BillRun já administra vários TB em uma única tabela, w/o que está sendo limitada pela adição de novos campos ou sendo limitada pelo crescimento
  3. ReplicaSet Rápido que permite reuniões de regulação com fácil configuração  multi Data Center DRP  e solução de HA.
  4. O Sharding permite alinnhar e escalar o crescimento w/o com o orçamento.
  5. Com mais de 2.000 inserções CDR, a arquitetura MongoDB é ótima para um sistema que deve suportar alta carga de inserção. No entanto, você pode garantir transações com findAndModify (que é mais lento) e de duas fases (aplicação wise).
  6. Desenvolvimento de Consultas Orientadas, permitem que os desenvolvedores escrevam consultas mais elegantes.
  7. Dados baseados na localização está sendo utilizado para analisar o uso de cada usuário e determinar onde investir em infra-estrutura celular.

O MongoDB é uma grande ferramenta, e ser for usada nos cenários certos, irá ganhar uma vantagem desleal em seu mercado. BillRun é um bom exemplo para isso.

Compartilhe.

PinIt
Top