Mais do que armazenar informações, o seu banco de dados é responsável por processá-las com rapidez, portanto é importante que ele conte com espaço de armazenamento e capacidade de processamento.
Desempenho
Com os seus documentos semelhantes a JSON, o MongoDB é notável pelo dimensionamento horizontal e balanceamento de carga, que oferece aos desenvolvedores ferramenta de alto desempenho e um excelente equilíbrio de personalização e escalabilidade.
Problemas de desempenho podem indicar que o banco de dados não está funcionando tão bem quanto poderia e que otimizações específicas devem ser adotadas.
Para manter o bom desempenho, deve-se tomar nota dos seguintes tópicos:
- Padrões de consulta e criação de perfil
2 . Modelagem e indexação de dados
3. Incorporação e referência
4. Memória de dimensionamento
5. Replicação e fragmentação
6 . Transações e preocupações de leitura/gravação
7. Configuração de hardware e SO
8. Avaliação comparativa
Características fundamentais do MongoDB:
- Alto desempenho - As consultas ad hoc, indexação e agregação em tempo real fornecem maneiras poderosas de acessar dados. Ele é um banco de dados distribuído por padrão, que permite escalabilidade horizontal expansiva sem nenhuma alteração na lógica do aplicativo.
- Tempo de consulta - Bem rápido. As consultas de chave primária ou índice devem levar apenas alguns milissegundos. As consultas sem índices dependem do tamanho da coleção e das especificações da máquina, etc.
- Espaço memória RAM - O banco precisa de RAM suficiente para manter seu conjunto de trabalho na memória. Sua resposta exata depende do tamanho dos dados e das cargas de trabalho. Você pode usar o MongoDB Atlas para dimensionamento automático.
- Dados ilimitados - é recomendado para grandes conjuntos de dados. O MongoDB Atlas pode lidar com consultas federadas em armazenamento de objetos (por exemplo, Amazon S3) e armazenamento de documentos.
5 Principais práticas para obter desempenho no MongoDB
1- Examinar padrões de consulta e criação de perfil - o desenvolvedor deve conhecer os padrões de consulta esperados e reais, para projetar seu modelo de dados e selecionar os índices apropriados de acordo com a necessidade.
Para melhorar o desempenho, segue abaixo seus principais padrões de consulta:
*Armazenar os resultados de subconsultas frequentes em documentos para reduzir a carga de leitura
*Certificar-se de que você tenha índices em todos os campos que você consulta regularmente
*Examinando seus logs para identificar consultas lentas e, em seguida, verificar seus índices
2- Analise a modelagem e a indexação de dados - ao projetar seu modelo de dados, você deve decidir como modelar relacionamentos entre dados. Decidir quando incorporar um documento ou criar uma referência entre documentos separados em coleções diferentes, essa é uma consideração específica do aplicativo.
Usando o MongoDB, você também pode modelar:
- estruturas planas, tabulares e colunares,
- pares de valores-chave simples,
- dados geoespaciais
- dados de séries temporais
- nós e arestas de estruturas de dados de grafos conectados, etc.
Tente
incorporar e fazer referência - a incorporação permite evitar junções de aplicativos, o que
minimiza consultas e atualizações.
Os dados com uma relação 1:1 devem ser incorporados em um único
documento. No entanto, nem todos os relacionamentos 1:1 e 1:muitos são bons candidatos para incorporação em um único documento. É aí que entra a referência entre documentos em diferentes coleções.
A referência faz
muito mais sentido ao modelar muitos: muitos relacionamentos. No entanto,
sempre que fizer referência, seu aplicativo deverá emitir consultas de acompanhamento
para solucionar eventuais referências. Isso, por sua vez, requer mais idas
e voltas ao servidor.
Você deve
considerar a referência quando:
Um
documento é acessado com frequência, mas contém dados raramente
usados. A incorporação só aumentaria os requisitos de memória,
portanto, a referência pode fazer mais sentido.
Uma
parte de um documento é atualizada com frequência e continua ficando mais
longa, enquanto o restante do documento é relativamente estático.
- O
tamanho do documento excede o limite de documentos de 16 MB do
MongoDB. Isso pode ocorrer ao modelar relacionamentos muitos:1, como
revisões de produtos:produto, por exemplo.
Determine o uso de memória - Como na maioria dos bancos de dados, o MongoDB funciona melhor
quando o conjunto de trabalho de um aplicativo (por exemplo, índices e dados
acessados com frequência) cabe na memória sem problemas. Enquanto outros
fatores desempenham um papel no desempenho, o tamanho da RAM é obviamente a
consideração mais importante para o dimensionamento da instância.
Quando o conjunto de trabalho de um aplicativo cabe na RAM, a
atividade de leitura do disco deve ser baixa. Mas se o seu conjunto de
trabalho exceder a RAM do tamanho da instância ou do servidor, a atividade de
leitura começará a disparar. Se você perceber que isso está acontecendo,
poderá resolver o problema movendo para uma instância maior com mais memória.
Monitorar replicação e fragmentação - A replicação pode levar a um melhor desempenho e também
oferece redundância, o que proporciona mais segurança.
A replicação é realizada por meio de conjuntos de réplicas que
permitem aos desenvolvedores copiar dados de um servidor ou nó primário em
vários secundários. Isso permite que seu aplicativo execute algumas
consultas em secundários em vez do primário, evitando contenção e levando a um
balanceamento de carga aprimorado.