Eu sou um noob completo quando se trata do movimento NoSQL. Eu ouvi muitas coisas sobre o MongoDB e o CouchDB. Eu sei que existem diferenças entre os dois. Qual você recomenda aprender como um primeiro passo no mundo NoSQL?
Eu sou um noob completo quando se trata do movimento NoSQL. Eu ouvi muitas coisas sobre o MongoDB e o CouchDB. Eu sei que existem diferenças entre os dois. Qual você recomenda aprender como um primeiro passo no mundo NoSQL?
Respostas:
Veja os links a seguir
Atualização : Encontrei uma ótima comparação dos bancos de dados NoSQL .
MongoDB (3.2)
Melhor usado : se você precisar de consultas dinâmicas. Se você preferir definir índices, não mapeie / reduza funções. Se você precisar de um bom desempenho em um grande banco de dados. Se você queria o CouchDB, mas seus dados mudam muito, preencha discos.
Por exemplo : Para a maioria das coisas que você faria com MySQL ou PostgreSQL, mas ter colunas predefinidas realmente o impede.
CouchDB (1.2)
Melhor usado : para acumular dados ocasionalmente alterados, nos quais consultas predefinidas devem ser executadas. Locais onde a versão é importante.
Por exemplo : CRM, sistemas CMS. A replicação mestre-mestre é um recurso especialmente interessante, permitindo implantações fáceis em vários sites.
Se você é oriundo do mundo MySQL, o MongoDB "se sentirá" muito mais natural por causa de seu suporte à linguagem semelhante a consultas.
Eu acho que é o que o torna tão amigável para muitas pessoas.
O CouchDB é fantástico se você deseja utilizar o excelente suporte à replicação master-master com uma configuração de vários nós, possivelmente em diferentes data centers ou algo assim.
A replicação do MongoDB (conjuntos de réplicas) é uma configuração mestre-escravo-escravo-escravo *, você só pode gravar no mestre em um conjunto de réplicas e ler qualquer um deles.
Para uma configuração de site padrão, tudo bem. Ele mapeia muito bem o uso do MySQL.
Mas se você estiver tentando criar um serviço global como uma CDN que precise manter todos os nós globais sincronizados, mesmo que a leitura / gravação para todos eles, algo como a replicação no CouchDB será um grande benefício para você.
Embora o MongoDB tenha uma linguagem de consulta que você possa usar e pareça muito intuitiva, o CouchDB adota uma abordagem de "redução de mapa" e esse conceito de visualizações. Parece estranho no começo, mas quando você pega o jeito, realmente começa a parecer intuitivo.
Aqui está uma rápida visão geral, portanto faz algum sentido:
Portanto, essas duas fontes usam documentos JSON, mas o CouchDB segue mais essa abordagem "todo servidor é mestre e pode sincronizar com o mundo", o que é fantástico se você precisar, enquanto o MongoDB é realmente o MySQL do mundo NoSQL.
Portanto, se isso soa mais como o que você precisa / deseja, faça isso.
Pequenas diferenças, como o protocolo binário do Mongo e a interface RESTful do CouchDB, são todos pequenos detalhes.
Se você deseja velocidade bruta e muita segurança na segurança dos dados, pode fazer com que o Mongo execute mais rápido que o CouchDB, pois ele pode operar com memória insuficiente e não comprometer coisas no disco, exceto por intervalos esparsos.
Você pode fazer o mesmo com o Couch, mas o protocolo de comunicação baseado em HTTP será 2-4x mais lento que a comunicação binária bruta com o Mongo nesta "velocidade sobre tudo!" cenário.
Lembre-se de que a velocidade insana louca é inútil se uma pane no servidor ou falha no disco corromper e colocar seu banco de dados no esquecimento, para que o ponto de dados não seja tão incrível quanto possa parecer (a menos que você esteja realizando sistemas de negociação em tempo real no Wall Street, nesse caso, veja Redis).
Espero que tudo ajude!
Atualmente, existem muito mais bancos de dados NoSQL no mercado do que nunca. Sugiro que dê uma olhada no Quadrante Mágico do Gartner se você estiver procurando por um banco de dados que também seja ótimo para aplicativos corporativos baseados em suporte, expansibilidade, gerenciamento e custo.
http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb
Gostaria de sugerir o Couchbase a qualquer um que ainda não o tenha experimentado, mas não com base na versão mostrada no relatório (2.5.1), porque há quase duas revisões atrás do CB Server hoje, aproximando-se do lançamento do 4.0 no 2S15 .
http://www.couchbase.com/coming-in-couchbase-server-4-0
A outra parte do Couchbase como fornecedor / produto é que ele é um tipo de banco de dados multiuso. Ele pode atuar como um armazenamento K / V puro, banco de dados orientado a documentos com escala multidimensional, Memcached, além de cache com persistência e suporta SQL compatível com ANSI 92 com junções automáticas, replicação para clusters de DR com o pressionar de um botão e ainda possui um componente móvel embutido no ecossistema.
Se nada mais, vale a pena conferir os últimos benchmarks:
http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.html http://info.couchbase.com/NoSQL-Technical-Comparison-Report.html