Dalam Oracle, membalikkan indeks merujuk kepada pembalikan bait nilai kunci indeks lajur indeks apabila mencipta indeks, untuk mencapai tujuan menyimpan blok nod anak yang berbeza secara berselerak Ia adalah "B-tree " Cabang indeks; menggunakan indeks terbalik, nilai kunci lajur indeks boleh diterbalikkan, supaya nilai kunci berurutan disebarkan ke dalam blok daun yang berbeza, dengan itu mengurangkan perbalahan untuk blok indeks.
Persekitaran pengendalian tutorial ini: sistem Windows 10, Oracle versi 12c, komputer Dell G3.
Sebagai cabang indeks B-tree, indeks songsang melakukan penyongsangan bait pada nilai kunci indeks lajur indeks semasa mencipta indeks , untuk mencapai tujuan storan teragih ke dalam blok subnod
daun yang berbeza.
Masalah yang disasarkan oleh indeks terbalik
Menggunakan indeks B-tree tradisional, apabila lajur yang diindeks dijana mengikut tertib, nilai kunci indeks yang sepadan pada asasnya akan diedarkan dalam yang sama bongkah daun. Apabila pengguna mengendalikan lajur ini,
perbalahan untuk blok indeks pasti akan berlaku.
Gunakan indeks terbalik untuk menterbalikkan nilai utama lajur indeks untuk menyebarkan nilai kunci berjujukan ke dalam blok daun yang berbeza, dengan itu mengurangkan perbalahan untuk blok indeks.
Contohnya: nilai kunci 1001, 1002, 1003, selepas penyongsangan, ia adalah 1001, 2001, 3001, dan kemudian tersebar ke blok nod daun yang tidak digunakan.
Apabila memuatkan beberapa data yang dipesan, indeks pasti akan menghadapi beberapa kesesakan yang berkaitan dengan I/O. Semasa pemuatan data, beberapa bahagian indeks dan cakera pasti akan digunakan dengan lebih kerap daripada yang lain. Untuk menyelesaikan masalah ini, ruang jadual indeks boleh disimpan pada seni bina cakera yang boleh memisahkan fail secara fizikal merentas berbilang cakera.
Untuk menyelesaikan masalah ini, Oracle turut menyediakan kaedah untuk membalikkan indeks kunci. Jika data disimpan dengan indeks kunci terbalik, nilai data akan bertentangan dengan nilai yang disimpan pada asalnya. Dengan cara ini, data 1234, 1235 dan 1236 disimpan sebagai 4321, 5321 dan 6321. Hasilnya ialah indeks mengemas kini blok indeks yang berbeza untuk setiap baris yang baru dimasukkan.
Kekunci pembalikan tidak boleh dilakukan pada indeks peta bit dan jadual tersusun indeks.
Petua:
Jika anda mempunyai kapasiti cakera yang terhad dan melakukan sejumlah besar muatan tersusun, anda boleh menggunakan pengindeksan kunci terbalik.
Anda tidak boleh menggunakan indeks kunci terbalik dengan indeks peta bit atau jadual tersusun indeks.
Amalan ORACLE DBA: Buat indeks kata kunci terbalik
Untuk sistem pemprosesan transaksi dalam talian yang besar, jadual biasanya sangat besar, dan kunci utama jadual ini Ia adalah dijana oleh nombor siri, dan terdapat indeks padanya. Oleh itu, rekod indeks bersebelahan mungkin wujud dalam blok data yang sama, yang akan menyebabkan persaingan untuk blok data. Apabila masa berlalu, data lama yang tidak berguna akan dipadamkan secara berterusan dan data berguna baharu akan dimasukkan ke dalam jadual ini Jelas sekali, data yang dipadam adalah data lama dengan nombor siri yang kecil, manakala data yang dimasukkan mempunyai nombor siri yang baru dijana (mesti menjadi bilangan yang besar), yang menyebabkan satu lagi masalah serius: iaitu, pokok indeks berat sebelah ke arah sisi dengan nombor jujukan yang lebih besar, yang akan memperdalam kedalaman pokok dan mengurangkan kecekapan sistem.
Untuk menyelesaikan masalah di atas, Oracle memperkenalkan indeks kata kunci terbalik. Pengindeksan kata kunci terbalik dicapai dengan membalikkan susunan setiap bait kata kunci (nombor siri) dan kemudian membina semula indeks. Contohnya:
Seperti yang dapat dilihat dari di atas, susunan bersebelahan asal# tidak lagi bersebelahan selepas diterbalikkan, supaya susunan bersebelahan# boleh tersebar ke Dalam blok data yang berbeza, masalah di atas mudah diselesaikan.
Tetapi perkara sentiasa dibahagikan kepada dua, dan terdapat juga masalah dengan kata kunci indeks terbalik. Sebagai contoh, anda akan menghadapi masalah apabila melakukan pertanyaan julat pada jadual dengan indeks kunci terbalik. Di bawah pengindeksan biasa, rekod indeks yang memenuhi syarat harus diletakkan dalam blok data yang sama atau bersebelahan, yang akan menjadi sangat pantas, bagaimanapun, selepas menggunakan indeks kata kunci terbalik, rekod indeks bersebelahan asal yang memenuhi syarat telah Tersebar ke dalam berbilang; blok data, satu-satunya cara untuk menyelesaikan operasi pertanyaan adalah dengan melakukan imbasan jadual penuh. Oleh itu, apabila memutuskan sama ada untuk menggunakan indeks kata kunci terbalik, adalah perlu untuk membezakan sama ada operasi sisipan adalah penting atau pertanyaan julat adalah penting.
Tutorial yang disyorkan: "Tutorial Video Oracle"
Atas ialah kandungan terperinci Apakah penyongsangan indeks oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!