Oracle
 sql >> Database >  >> RDS >> Oracle

che aspetto ha un indice B-tree su più di 1 colonna?

Con la maggior parte delle implementazioni, la chiave è semplicemente una chiave più lunga che include tutti i valori chiave, con un separatore. Nessuna magia lì;-)

Nel tuo esempio i valori chiave potrebbero assomigliare a

"123499|John Doe|Conway, NH"
"32144|Bill Gates| Seattle, WA"

Una delle caratteristiche di questi indici con chiavi composite è che i nodi intermedi dell'albero possono essere utilizzati in alcuni casi per "coprire" la query.

Ad esempio, se la query deve trovare il nome e la città a cui è stato assegnato l'ID, poiché l'ID è il primo nell'indice, l'indice può eseguire ricerche in base a questo in modo efficiente. Una volta nel nodo intermedio, può "analizzare" il Nome e la Città, dalla chiave, e non ha bisogno di andare al nodo foglia per leggerlo.

Se invece la query volesse visualizzare anche il numero di telefono, la logica seguirebbe la foglia quando viene trovato il record completo.