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

No MongoDB, se um índice estiver em 3 campos, podemos usar esse índice ao consultar 2 campos? (curinga no 3º campo)


Esses são índices de árvore B, portanto, podem ser usados ​​para um subconjunto de prefixo das colunas envolvidas. Se você não tiver as colunas iniciais, uma varredura de intervalo de índice (a operação para a qual um índice de árvore B é usado principalmente) não será mais possível. Pode haver outras maneiras de ainda usar o índice (Oracle tem verificações completas rápidas e verificações ignoradas, por exemplo), mas geralmente o índice não será usado.

Esse raciocínio se aplica a tudo que usa índices B-tree, DB relacional ou não.

Novamente, isso não depende do tipo da coluna, mas da ordem das colunas no índice. Você precisa ter as colunas iniciais (no seu caso, você precisa de page_type). Se você tiver muitas consultas sem page_type, considere recriar o índice com page_type como a última coluna (o que obviamente também pode ter um impacto negativo em outras consultas). Em geral, você precisa saber que tipo de consultas executará antes de poder projetar os índices.