Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

apakah kolom yang bertambah membuat indeks b-tree pada kolom tidak seimbang?

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah saya menonaktifkan pemicu di dalam pemicu di Oracle?

  2. Mengapa SQL*Plus melakukan komit saat keluar?

  3. Bagaimana Mengekspor Hasil Kueri ke Excel di Oracle SQL Developer?

  4. Pembaruan Oracle Hang

  5. kueri sql untuk menemukan atribut yang cocok