PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Apa definisi indeks sekunder di postgresql?

Ada beberapa kekurangan presisi dalam definisi indeks primer &sekunder.

Menggunakan dua teks universitas populer sebagai referensi:

Dasar-Dasar Sistem Basis Data, Elmasri &Navathe mendefinisikannya sebagai:

Sistem Basis Data:Buku Lengkap, Garcia-Molina et. al mendefinisikannya sebagai:

Beberapa properti yang berlaku untuk salah satu definisi di atas:

  • kunci utama dapat menjadi indeks utama
  • maksimal ada 1 indeks utama per tabel
  • indeks utama secara unik menentukan di mana catatan disimpan dalam penyimpanan fisik.
  • Semua indeks lainnya diklasifikasikan sebagai sekunder.

Namun, jika penempatan catatan dalam file data tidak ditentukan oleh bidang apa pun, maka indeks utama tidak dapat dibuat.

Jadi untuk file yang diurutkan, masuk akal untuk berbicara tentang indeks utama (yang akan menjadi daftar bidang yang menjadi dasar penyortiran). Saya tidak dapat menemukan contoh lain dari struktur file fisik tempat indeks utama dapat dibuat.

Postgresql menggunakan struktur tumpukan untuk penyimpanan fisik untuk catatan. Tumpukan tidak diurutkan (peringatan permainan kata:mereka agak diurutkan). Oleh karena itu, bahkan kunci utama diimplementasikan menggunakan indeks sekunder, dan dengan demikian semua indeks di Postgresql adalah sekunder.

Sistem RDBMS lainnya lakukan menerapkan format penyimpanan yang mendukung indeks utama:

Bahasa dalam Dokumentasi Postgres tidak tepat.

Ini benar.

Ini bukan mengapa semua indeks sekunder di Postgresql. Indeks utama juga dapat disimpan secara terpisah dari area data utama tabel.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. KONSTRAINT UNIK Postgres untuk array

  2. TimescaleDB:pilih baris terakhir secara efisien

  3. Fungsi refactor sehingga dapat digunakan dalam CTE

  4. Permintaan postgres jsonb pada objek bersarang

  5. Entity Framework Core postgresql Pemetaan Tipe Array tidak berfungsi