MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

In MongoDB, se un indice è su 3 campi, possiamo usare quell'indice quando eseguiamo query su 2 campi? (carattere jolly sul 3° campo)

Questi sono indici B-tree, quindi possono essere usati per un sottoinsieme di prefissi delle colonne coinvolte. Se non si dispone delle colonne iniziali, una scansione dell'intervallo di indici (l'operazione per cui viene utilizzato principalmente un indice B-tree) non è più possibile. Potrebbero esserci altri modi per continuare a utilizzare l'indice (ad esempio Oracle ha scansioni complete veloci e ignora le scansioni), ma di solito l'indice non verrà utilizzato.

Questo ragionamento si applica a tutto ciò che utilizza indici B-tree, DB relazionali o meno.

Anche in questo caso, ciò non dipende dal tipo di colonna, ma dall'ordine delle colonne nell'indice. Devi avere le colonne iniziali (nel tuo caso, hai bisogno di page_type). Se hai molte query senza page_type, considera la possibilità di ricreare l'indice con page_type come ultima colonna (che ovviamente potrebbe anche avere un impatto negativo su altre query). In generale, devi sapere che tipo di query eseguirai prima di poter progettare gli indici.