Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Quando usar o MongoDB ou outros sistemas de banco de dados orientados a documentos?


Em NoSQL:Se fosse assim tão fácil , o autor escreve sobre o MongoDB:

MongoDB não é um armazenamento de chave/valor, é um pouco mais. Definitivamente também não é um RDBMS. Eu não usei o MongoDB em produção, mas usei um pouco construindo um aplicativo de teste e é um kit muito legal. Parece ter muito desempenho e tem, ou terá em breve, tolerância a falhas e auto-sharding (também conhecido como escala). Acho que o Mongo pode ser a coisa mais próxima de uma substituição de RDBMS que eu vi até agora. Não funcionará para todos os conjuntos de dados e padrões de acesso, mas foi desenvolvido para o seu material CRUD típico. Armazenar o que é essencialmente um hash enorme e poder selecionar qualquer uma dessas chaves é o que a maioria das pessoas usa um banco de dados relacional. Se seu banco de dados for 3NF e você não fizer nenhuma junção (você está apenas selecionando um monte de tabelas e juntando todos os objetos, também conhecido como o que a maioria das pessoas faz em um aplicativo da web), o MongoDB provavelmente seria ótimo para você.

Então, na conclusão:

A coisa real a salientar é que se você está sendo impedido de fazer algo super incrível porque você não pode escolher um banco de dados, você está fazendo errado. Se você conhece o mysql, basta usá-lo. Otimize quando você realmente precisa. Use-o como uma loja k/v, use-o como um rdbms, mas pelo amor de Deus, construa seu aplicativo matador! Nada disso importará para a maioria dos aplicativos. O Facebook ainda usa muito o MySQL. A Wikipedia usa muito o MySQL. O FriendFeed usa muito o MySQL. O NoSQL é uma ótima ferramenta, mas certamente não será sua vantagem competitiva, não tornará seu aplicativo interessante e, acima de tudo, seus usuários não se importarão com nada disso.

Em que vou construir meu próximo aplicativo? Provavelmente Postgres. Vou usar NoSQL? Pode ser. Eu também posso usar Hadoop e Hive. Eu poderia manter tudo em arquivos simples. Talvez eu comece a hackear Maglev. Vou usar o que for melhor para o trabalho. Se eu precisar de relatórios, não usarei nenhum NoSQL. Se eu precisar de cache, provavelmente usarei o Tokyo Tyrant. Se eu precisar de ACIDity, não usarei NoSQL. Se eu precisar de uma tonelada de contadores, usarei o Redis. Se eu precisar de transações, usarei o Postgres. Se eu tiver uma tonelada de um único tipo de documento, provavelmente usarei o Mongo. Se eu precisasse escrever 1 bilhão de objetos por dia, provavelmente usaria Voldemort. Se eu precisar de pesquisa de texto completo, provavelmente usaria o Solr. Se eu precisar de pesquisa de texto completo de dados voláteis, provavelmente usaria o Sphinx.

Eu gosto deste artigo, acho muito informativo, dá uma boa visão geral do cenário NoSQL e do hype. Mas, e essa é a parte mais importante, realmente ajuda fazer as perguntas certas quando se trata de escolher entre RDBMS e NoSQL. Vale a pena ler IMHO.

Link alternativo para o artigo a>