sql >> Database >  >> RDS >> Oracle

hoe ziet een B-tree index op meer dan 1 kolom eruit?

Bij de meeste implementaties is de sleutel gewoon een langere sleutel die alle sleutelwaarden bevat, met een scheidingsteken. Geen magie daar;-)

In uw voorbeeld kunnen de sleutelwaarden er ongeveer zo uitzien

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

Een van de kenmerken van deze indexen met samengestelde sleutels is dat de tussenliggende boomknooppunten in sommige gevallen kunnen worden gebruikt om de zoekopdracht te "bedekken".

Als de zoekopdracht bijvoorbeeld de naam en plaats moet vinden die aan de ID is gegeven, aangezien de ID eerst in de index staat, kan de index hier efficiënt op zoeken. Eenmaal in het tussenknooppunt kan het de naam en stad "parsen" vanaf de sleutel en hoeft het niet naar het bladknooppunt te gaan om hetzelfde te lezen.

Als de zoekopdracht echter ook het telefoonnummer wilde weergeven, zou de logica het blad volgen wanneer het volledige record wordt gevonden.



  1. FOUT:kon het bestand "$libdir/plpython2" niet openen - FOUT:kon het bestand "$libdir/plpython3" niet openen

  2. Converteer de nieuwe rij naar XML binnen een Oracle Trigger

  3. CAST en IsNumeric

  4. Alles wat u moet weten over SQL CTE op één plek