MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Prós e contras de usar o MongoDB em vez do MS SQL Server


Eu sou um iniciante em bancos de dados NoSQL. Portanto, estou respondendo a isso à custa de possíveis votos negativos, mas será uma ótima experiência de aprendizado para mim.
  • para saber se o MongoDB é bom para armazenar esses dados, que eventualmente serão consultados em intervalos de tempo (por exemplo, recuperar todas as imagens de uma câmera específica entre uma hora especificada)? Alguma sugestão sobre o design do esquema baseado em documentos para o meu caso?

MongoDB sendo um banco de dados orientado a documentos, é bom em consultar dentro um agregado (você chama de documento). Como você já está armazenando os dados de cada câmera em sua própria tabela, no MongoDB você terá uma coleção separada criado para cada câmera. Veja como você realiza consultas de intervalo de datas.
  • Quais devem ser as especificações do servidor (CPU, RAM, Disco)? alguma sugestão?

Todos os bancos de dados NoSQL são construídos para escalar em hardware commodity. Mas pela forma como você fez a pergunta, você pode estar pensando em melhorar o desempenho aumentando . Você pode começar com uma máquina razoável e, à medida que a carga aumenta, pode continuar adicionando mais servidores (escalonando). Você não precisa planejar e comprar um servidor de ponta.
  • Devo considerar fragmentação/replicação para este cenário (considerando o desempenho na gravação para sincronizar conjuntos de réplicas)?

MongoDB bloqueia todo o banco de dados para uma única gravação (mas rende para outras operações) e destina-se a sistemas que têm mais leituras do que gravações. Então isso depende de como seu sistema está. Existem várias maneiras de fragmentação e devem ser específicas do domínio. Uma resposta genérica não é possível. No entanto, alguns exemplos podem ser dados como fragmentação por geografia, por ramificações etc.

Leia também Uma introdução em inglês simples ao teorema CAP

Atualizado com resposta ao comentário sobre fragmentação

De acordo com a documentação , você deve considerar a implantação de um cluster fragmentado se:

Então, com base no último ponto sim. O recurso de fragmentação automática foi criado para dimensionar gravações. Nesse caso, você tem um bloqueio de gravação por fragmento , não por banco de dados . Mas a minha é uma resposta teórica. Sugiro que você consulte o grupo 10gen.com.