sql >> Databáze >  >> RDS >> Oracle

jak vypadá index B-stromu na více než 1 sloupci?

U většiny implementací je klíč jednoduše delší klíč, který zahrnuje všechny hodnoty klíče s oddělovačem. Žádná magie tam není;-)

Ve vašem příkladu mohou klíčové hodnoty vypadat nějak takto

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

Jednou z charakteristik těchto indexů se složenými klíči je, že mezilehlé uzly stromu lze v některých případech použít k "pokrytí" dotazu.

Pokud má například dotaz najít název a město dané ID, protože ID je v indexu první, index může podle toho vyhledávat efektivně. Jakmile je v mezilehlém uzlu, může „analyzovat“ název a město z klíče a nemusí jít do listového uzlu, aby totéž přečetl.

Pokud by však dotaz chtěl zobrazit také telefonní číslo, logika by po nalezení celého záznamu následovala list.



  1. Funkce STRING_AGG() v PostgreSQL

  2. Nejlepší užitečné dotazy AWR pro upgrade R12.2/R12.1

  3. Vypočítejte percentil z frekvence v MySQL

  4. Najděte porušení cizího klíče v SQLite