obrati paznju da "u memoriji" i "na disku" nije isto ... u memoriji imas b+ (koristi se za rdbms mnogo cesce od obicnog btree) .. na disku imas "sta god je programer odlucio da mu je najlakse da snimi / procita" ...
sve u svemu, myisam ti je najjednostavniji (daleko od toga da je najbolji) posto ima za svaku tabelu index u posebnom fajlu. Uzmes i kreiras jednostavnu tabelu sa jednim indexom i popunis je i onda pogledas kako izgleda myi fajl. generalno fajl ima na pocetku duzinu hedera, pa heder u kom pise kako indexi izgledaju .. i onda idu indexi ... cuvaju se u fajlu samo leaf vrednosti (ako se dobro secam) i generalno izgledaju za key (a,b,c,d) kao
a, offset na sledeci segment za ovaj nivo, b, offset na sledeci segment za ovaj nivo, c, offset na sledeci segment za ovaj nivo, d, pointer na podatak u myd fajlu,
i to u idealnom slucaju sortirano po a,b,c,d
malo sam bukvalizovao al to je generalno to. InnoDB to radi malo drugacije, pgsql jos drugacije, oracle skroz na drugi nacin etc etc etc ... u ramu skoro svi imaju b+, neki imaju nekoliko b+ u ramu a neki modifikacije b+ kako bi izbegli neke limite (koje npr mysql ima) ... pa onda imas dodatna komplikovanja za mvcc etc etc .. sve u svemu "najjednostavniji" nacin imas sa myisam-om (sa svim njegovim ogranicenjima, bez ikakvih "fancy fora" i slicno). Neki engine-i imaju razne fora (recimo fulltext key tog istog myisam-a, ili rrd key za neke storage engine ..) gde je sve ovo mnogo drugacije ... al u osnovi uvek je razlika sta je u ramu a sta je na disku