Többszintű index
- Az indexfájl (1. indexszint) is rendezett fájl, így az tovább indexelhető elsődleges indexxel
- A főfájl lehet rendezett, vagy rendezetlen, AZ INDEXFÁJL MINDIG(!) RENDEZETT
t-szintű index, az indexek mélysége
Keresési idő
- a
t-adik szintenI\(^{(t)}\) bináris kereséssel kapjuk meg a fedő indexrekordot - Követjük a mutatót minden szinten, amíg a főfájlhoz nem jutunk
- \(log_2(B(I^{(t)}))\) blokkolvasás
- Ha a legfelső szint egy blokkból áll, akkor
t+1blokkolvasás - Minden szint blokkolási faktora megegyezik, mert az indexrekordok egyforma hosszúak
Statok
| Főfájl | 1. szint | 2. szint | \(\ldots\) | t. szint |
|
|---|---|---|---|---|---|
| blokkok száma | \(\green{B}\) | \(\purple{\dfrac{B}{bf(I)}}\) | \(\dfrac{B}{bf(I)^2}\) | \(\ldots\) | \(\dfrac{B}{bf(I)^{(t)}}\) |
| rekordok száma | \(T\) | \(\green{B}\) | \(\purple{\dfrac{B}{bf(I)}}\) | \(\ldots\) | \(\dfrac{B}{bf(I)^{(t-1)}}\) |
| blokkolási faktor | \(bf\) | \(\blue{bf(I)}\) | \(\blue{bf(I)}\) | \(\ldots\) | \(\blue{bf(I)}\) |
t-ik szinten 1 blokk: \(1=\dfrac{B}{bf(I)^t}\)
- \(t=\log_{bf(I)}B~<~log_2(B)\)
- Tehát jobb a rendezett fájlszervezésnél
általában \(log_{bf(I)}~<~log_2(B(I))\) is igaz, így az egyszinttű indexelésnél is gyorsabb
Módszerek
B\(^+\), B\(^*\) fák a menő
A szerkezeten kívül a telítettség biztosító/karbantartó algokat is beleértjük
- B\(^+\): Minden blokk legalább 50%-ban telített
- B\(^*\): Minden blokk legalább 66%-ban telített