Walaupun banyak cara untuk meningkatkan prestasi pangkalan data wujud, satu ciri adalah hampir universal untuk mana-mana pangkalan data. Indeks pangkalan data ialah struktur data atau objek yang digunakan untuk meningkatkan kelajuan pengambilan data daripada jadual.
Apabila digunakan dengan betul, indeks pangkalan data boleh mengurangkan kelajuan pertanyaan sebanyak hampir separuh, bergantung pada data sasaran, reka letak, sumber yang tersedia, dsb.
Dalam tutorial ini, anda akan belajar cara bekerja dengan indeks unik dalam pangkalan data Oracle untuk menghalang ketersediaan nilai pendua dalam lajur yang diindeks.
Indeks Unik Oracle
Kita boleh menggunakan indeks unik untuk memastikan tiada baris pendua disimpan dalam lajur tertentu. Jika lajur indeks tertentu mengandungi peraturan unik, percubaan untuk menambah dua baris dengan nilai yang serupa dalam lajur itu akan mengakibatkan ralat yang menunjukkan pelanggaran kekangan unik.
Dalam Oracle, kita boleh mencipta indeks unik menggunakan pernyataan CREATE UNIQUE INDEX seperti yang ditunjukkan dalam yang berikut:
BUAT nama indeks INDEKS UNIK PADA nama_jadual ( lajur ) ;
Lajur yang disertakan dalam indeks tidak akan menerima sebarang baris pendua.
Contoh Ilustrasi Jadual Unik
Untuk menunjukkan cara membuat dan menggunakan indeks unik, ambil jadual berikut:
PILIH * DARI sample_data;
Pengeluaran :
Buat Indeks Unik pada Lajur First_Name
Pernyataan contoh berikut menunjukkan cara membuat indeks unik menggunakan lajur first_name:
buat indeks_nama_unik pada sampel_data ( nama pertama ) ;Dengan mendayakan indeks ini, kami tidak boleh memasukkan lebih daripada satu baris dengan nama pertama yang sama.
Ambil contoh pernyataan sisipan berikut:
masukkan ke dalam data_sampel ( ID , nama_pertama, alamat_ip, alamat_btc, kad_kredit, pengecam )nilai ( sebelas , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;
Jika kita menjalankan pernyataan sisipan yang diberikan, kita sepatutnya mendapat ralat seperti yang ditunjukkan dalam yang berikut:
[ 23000 ] [ 1 ] ORA-00001: kekangan unik ( HR.FIRST_NAME_UNIQUE ) dilanggarSeperti yang kita dapat lihat, memasukkan nilai yang diberikan melanggar kekangan unik untuk lajur first_name.
Buat Indeks Unik dengan Dua Lajur
Kita juga boleh mempunyai indeks unik yang terdiri daripada lebih daripada satu lajur. Dalam contoh berikut, kami mencipta indeks unik menggunakan lajur first_name dan io_address:
buat lajur pengesahan indeks unik pada data_sampel ( nama_pertama, alamat_ip ) ;Begitu juga, menambah nilai pendua sama ada untuk lajur first_name atau ip_address akan mengakibatkan ralat pelanggaran indeks yang unik.
Indeks Unik Automatik
Pernahkah anda terfikir apa yang berlaku apabila anda mengisytiharkan lajur jadual dengan kunci utama atau kekangan unik?
Secara ringkas, jika anda menetapkan lajur sebagai kunci utama jadual atau memberikan kekangan unik kepada lajur tertentu, enjin pangkalan data secara automatik mencipta indeks unik untuk lajur itu.
Ini memastikan tiada nilai pendua disisipkan dalam lajur itu.
Ambil contoh pernyataan berikut:
buat sampel_data jadual(
ID nombor,
nama_pertama varchar2 ( lima puluh ) ,
ip_address varchar2 ( dua puluh ) ,
btc_address varchar2 ( lima puluh ) ,
kad kredit varchar2 ( lima puluh ) ,
pengecam varchar2 ( 40 ) ,
kekangan sample_pk kunci utama ( ID )
) ;
Dalam contoh sebelumnya, kami mencipta jadual dan menetapkan lajur id sebagai kunci utama jadual. Kemudian, untuk melihat kekangan unik yang dikaitkan dengan lajur itu (dijana secara automatik), kita boleh menjalankan arahan berikut:
pilih nama_indeks, jenis_indeks, keterlihatan, status, TABLE_NAMEdaripada semua_indeks di mana TABLE_NAME = 'SAMPLE_DATA' ;
Keputusan :
Dalam kes ini, kita boleh melihat indeks unik yang dicipta oleh enjin pangkalan data untuk lajur id.
Kesimpulan
Dalam panduan ini, anda belajar cara mencipta dan menggunakan indeks unik dalam pangkalan data Oracle. Anda juga mengetahui perkara yang berlaku apabila anda menetapkan kunci utama atau kekangan unik pada lajur jadual.