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

Índice no MongoDB


O índice é uma maneira típica de acelerar as consultas no sistema de banco de dados normal. Não há diferença entre o MongoDB e um sistema de banco de dados baseado em documentos. Este artigo fornece informações sobre o índice no MongoDB, para otimização de consulta.

Índice no Mongo:

Padrão


_id é um objeto ObjectId, tipo BSON de 12 bytes que garante exclusividade dentro da coleção. O ObjectId é gerado com base no carimbo de data/hora, ID da máquina, ID do processo e um contador incremental local do processo.

Campo único


Para um índice de campo único e operações de classificação, a ordem de classificação (ou seja, ascendente ou descendente) da chave de índice não importa porque o MongoDB pode percorrer o índice em qualquer direção. O valor de índice é o tipo de índice. Por exemplo, 1 indica ordem crescente e -1 especifica a ordem decrescente.
db.friends.createIndex( { "name" : 1 } )


Campo Composto

A ordem dos campos listados em um índice composto tem significado. Por exemplo, se um índice composto consiste em { userid:1, score:-1 }, o índice classifica primeiro por userid e, em seguida, dentro de cada valor de userid, classifica por pontuação.
db.products.createIndex( { "item": 1, "stock": 1 } )


Chave múltipla

O MongoDB usa vários índices para indexar o conteúdo em uma matriz. O MongoDB cria entradas de índice separadas para cada elemento do array. Você não precisa criar explicitamente várias chaves.

Índice de texto


Uma coleção pode ter no máximo um índice de texto.
Custo de desempenho para índice de texto:
índices de texto podem ser grandes. Eles contêm uma entrada de índice para cada palavra pós-radical exclusiva em cada campo indexado para cada documento inserido.
os índices de texto afetarão a taxa de transferência de inserção porque o MongoDB deve adicionar uma entrada de índice para cada palavra pós-tronco exclusiva em cada campo indexado de cada novo documento de origem.
db.reviews.createIndex( { comments: "text" } )

Índice de hash


Consulte o conteúdo por seu valor de hash. O hash é uma função a ser calculada pelo seu valor. O valor com hash foi projetado para ser um valor distinto. A única vantagem é que é tão rápido, que leva O(1) no máximo, mas por contrato a árvore de busca binária normal levará O(Log(N)). O hash será teoricamente mais rápido do que a implementação normal da árvore de busca binária. Mas a desvantagem é que a pesquisa de intervalo de execução do índice de hash será extremamente lenta do que o índice normal.

Este é um exemplo em python para construir um índice de hash
db.active.createIndex( { a: "hashed" } )