Oracle
indeks 's tidak pernah "tidak seimbang":setiap daun dalam indeks berada pada kedalaman yang sama dengan daun lainnya.
Tidak ada pemisahan halaman yang memperkenalkan level baru dengan sendirinya:halaman daun tidak menjadi induk untuk halaman baru seperti pada pohon yang tidak menyeimbangkan diri.
Sebagai gantinya, saudara untuk halaman terpisah dibuat dan catatan baru (ditambah mungkin beberapa catatan dari halaman lama) pergi ke halaman baru. Pointer ke halaman baru ditambahkan ke induknya.
Jika halaman induk juga kehabisan ruang (tidak dapat menerima penunjuk ke halaman daun yang baru dibuat), halaman tersebut juga akan terbelah, dan seterusnya.
Pemisahan ini dapat menyebar hingga halaman root, yang pemisahannya adalah satu-satunya hal yang meningkatkan kedalaman indeks (dan melakukannya untuk semua halaman sekaligus).
Halaman indeks juga diatur ke dalam daftar tertaut ganda, setiap daftar pada levelnya sendiri. Ini tidak mungkin jika pohon tidak seimbang.
Jika master_id
bertambah secara otomatis ini berarti bahwa semua pemisahan terjadi di akhir (disebut 90/10
splits) yang memungkinkan indeks yang paling padat.
Tidak, karena alasan di atas.
Jika Anda bergabung dengan slave
untuk master
sering kali, Anda dapat mempertimbangkan untuk membuat CLUSTER
dari dua tabel, diindeks oleh master_id
. Ini berarti bahwa record dari kedua tabel, berbagi master_id
yang sama , buka halaman data yang sama atau terdekat yang membuat penggabungan di antara keduanya sangat cepat.
Ketika mesin menemukan catatan dari master
, dengan indeks atau apa pun, ini juga berarti telah menemukan catatan dari slave
untuk bergabung dengan master
itu . Dan sebaliknya, menemukan slave
juga berarti menemukan master
-nya .