Rumah >pangkalan data >tutorial mysql >Kekangan Unik lwn. Indeks Unik dalam Postgres: Bilakah Saya Perlu Menggunakan Yang Mana?
Aplikasi praktikal kekangan unik dan indeks unik dalam PostgreSQL
Dokumentasi PostgreSQL menyatakan bahawa kekangan unik dan indeks unik adalah setara dari segi fungsi, tetapi mengesyorkan menggunakan sintaks ALTER TABLE ... ADD CONSTRAINT
untuk menguatkuasakan kekangan unik. Ini menimbulkan persoalan tentang potensi perbezaan dalam prestasi atau kefungsian.
Perbandingan kekangan unik dan indeks unik
Untuk menggambarkan perbezaannya, mari buat jadual yang dipanggil master
dengan dua lajur: con_id
dengan kekangan unik dan ind_id
diindeks oleh indeks unik.
<code class="language-sql">create table master ( con_id integer unique, ind_id integer ); create unique index master_idx on master (ind_id);</code>
Keunikan dan kunci asing
Kedua-dua kekangan unik dan indeks unik menguatkuasakan keunikan pada lajur masing-masing. Memasukkan nilai pendua akan gagal. Kunci asing yang merujuk lajur ini juga berfungsi untuk kedua-dua jenis.
Gunakan indeks sebagai kekangan
Anda boleh mencipta kekangan jadual menggunakan indeks unik sedia ada menggunakan sintaks berikut:
<code class="language-sql">alter table master add constraint master_idx_key unique using index master_idx;</code>
Selepas itu, tiada perbezaan dalam perihalan kekangan lajur.
Indeks Tempatan
Pengisytiharan indeks unik membenarkan penciptaan indeks separa dengan klausa WHERE digunakan untuk menentukan subset baris untuk diindeks. Walau bagaimanapun, kekangan unik tidak membenarkan ini.
Prestasi dan ketersediaan
Walaupun tiada perbezaan prestasi yang ketara antara kekangan unik dan indeks unik, perkara berikut mungkin mempengaruhi pilihan anda:
Berdasarkan pertimbangan ini, pendekatan pilihan dalam kebanyakan kes biasanya menggunakan kekangan unik. Untuk indeks separa atau situasi di mana parameter indeks tersuai diperlukan, indeks unik mungkin lebih bermanfaat. Walau bagaimanapun, pilihan terakhir bergantung pada keperluan dan keutamaan reka bentuk pangkalan data khusus anda.
Atas ialah kandungan terperinci Kekangan Unik lwn. Indeks Unik dalam Postgres: Bilakah Saya Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!