1000 index einträge = ? MB groß

wenn ich einen index, typ integer, habe der 1000 einträge enthält, wie geht dann die berechnung, damit ich rausbekomme wiviele MB mein index dann hat. Ich gehe von einem B+Baum aus.
irgendwie ist die formel noch nicht ganz richtig.

integer = 4byte
zeiger = 4byte
baum zu 2/3 gefüllt

1000 * (4+4) + ((1000 * (4+4)) / 3) = 10667 byte
10667 byte =ca. 10,24 kB
 
Hallo,

das kommt doch hochgradig darauf an, wie viele Schlüssel in den inneren Knoten bzw. wie viele Datenelemente in den Blattknoten gespeichert werden. Das geht in deiner Formel überhaupt nicht ein, oder?

Grüße,
Matthias
 
Nein, geht es nicht.

Ein B+-Baum hat pro Knoten n Werte und n+1 Zeiger. Die Blätter besitzen keine Zeiger.
Ein voller B+-Baum mit der Höhe 2 hat maximal n+1 Kinderknoten mit jeweils n Werten, macht also für den Teilbaum genau n+(n+1)*n Elemente, demnach hat ein Baum mit der Höhe h maximal (n+1)^h-1 Werte mit ((n+1)^h-(n+1))/n Zeiger.

Die Werte zu addieren und mit der Größe im Speicher zu multiplizieren überlasse ich Dir.

BTW: Warum wird hier eigentlich immer noch kein \LaTeX angeboten?
 

Neue Beiträge

Zurück