Mam dużo nazw, tekstów do zapisania, które się często powtarzają,
więc wymyśliłem sposób na to: btree z częściowymi kluczami.
Pomysł polega na tym, że tworzę indeks b-drzewa, w którym zamiast całych nazw będą tylko 2 pierwsze znaki,
a wtedy wystarczy tylko jeden poziom do zapisania milionów pozycji.
Na początku tworzę jeden klucz w indeksie: FFFF, czyli maksymalny (2 znaki zawsze mieszczą się: 0000..FFFF)
Potem będzie to się rozrastać zwyczajnie, poprzez połowienie stron - liści,
dojdzie nowy klucz do indeksu, np.: 'KB', itd.
Każda strona z danymi niech ma rozmiar 4KB, albo 16KB, wtedy zmieści się tam 100-500 tekstów: 4000/20 = 200
Oszacowanie pojemności:
indeks o rozmiarze 16KB pomieści 16000/ 8 = 2000, kluczy częściowych (2B + 4 na adres strony = 6),
zatem biorąc średnio 20 znaków na tekst do zapisania, w sumie taka prymitywna baza pomieści:
2000 x 200 = 400 000;
co powinno wystarczyć do zapisu dowolnego słownika.
Pytanie: są takie bazy znane - używane?
Zwykle słyszę że B-drzewa rozrastają się do 8 poziomów i głębiej, co prowadzi do wielu problemów i komplikacji kodu.