Oracle Индексите на никога не са "небалансирани":всеки лист в индекса е на същата дълбочина като всеки друг лист.
Нито едно разделяне на страници не въвежда ново ниво само по себе си:листната страница не става родител за нови страници, както би било при несамобалансиращо се дърво.
Вместо това се прави брат или сестра за разделената страница и новият запис (плюс евентуално някои от записите от старата страница) отиват на новата страница. Към родителската се добавя указател към новата страница.
Ако родителската страница също е свършила (не може да приеме показалеца към новосъздадената крайна страница), тя също се разделя и т.н.
Тези разделяния могат да се разпространяват до основната страница, чието разделяне е единственото нещо, което увеличава дълбочината на индекса (и го прави за всички страници наведнъж).
Индексните страници са допълнително организирани в двойно свързани списъци, всеки списък на собствено ниво. Това би било невъзможно, ако дървото беше небалансирано.
Ако master_id се увеличава автоматично, това означава, че всички разделяния се появяват в края (наричани 90/10 разделя), което прави възможно най-плътния индекс.
Не, не би, поради причините по-горе.
Ако се присъедините към slave към master често може да обмислите създаването на CLUSTER от двете таблици, индексирани от master_id . Това означава, че записите от двете таблици споделят един и същ master_id , отидете на същата или близки страници с данни, което прави свързването между тях много бързо.
Когато машината намери запис от master , с индекс или нещо друго, това също означава, че вече е намерил записите от slave да се присъедини към този master . И обратно, намиране на slave също означава намиране на неговия master .