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

indeks postgresql pada kolom string

Untuk pemeriksaan kesetaraan sederhana (= ), indeks B-Tree pada varchar atau text kolom sederhana dan pilihan terbaik. Ini tentu sangat membantu kinerja banyak .

Tentu saja, indeks B-Tree pada integer sederhana berkinerja lebih baik. Sebagai permulaan, membandingkan integer simple sederhana nilai sedikit lebih cepat. Tetapi yang lebih penting, kinerja juga merupakan fungsi dari ukuran indeks. Kolom yang lebih besar berarti lebih sedikit baris per halaman data, berarti lebih banyak halaman yang harus dibaca ...

Sejak HomeAddress hampir tidak unik, itu bukan kunci primer alami yang baik. Saya sangat menyarankan untuk menggunakan kunci primer pengganti alih-alih. serial kolom adalah pilihan yang jelas untuk itu. Satu-satunya tujuannya adalah memiliki kunci utama yang sederhana dan cepat untuk digunakan.

Jika Anda memiliki tabel lain yang merujuk tabel tersebut, ini menjadi lebih efisien. Alih-alih menduplikasi string panjang untuk kolom kunci asing, Anda hanya perlu 4 byte untuk kolom bilangan bulat. Dan Anda tidak perlu melakukan banyak pembaruan, karena alamat pasti akan berubah, sementara pk pengganti bisa tetap sama (tetapi tidak harus, tentu saja).

Tabel Anda dapat terlihat seperti ini:

CREATE TABLE resident (
   resident_id serial PRIMARY KEY
  ,address text NOT NULL
   -- more columns
);

CREATE INDEX resident_adr_idx ON resident(address);

Ini menghasilkan dua indeks B-Tree. Indeks unik di resident_id dan indeks biasa pada address .

Selengkapnya tentang indeks di manual .
Postgres menawarkan banyak opsi - tetapi Anda tidak perlu lagi untuk kasus sederhana ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails:Menambahkan migrasi untuk menambahkan array (default kosong)

  2. Bagaimana Pemindaian Heap Bitmap dan Pemindaian Indeks diputuskan?

  3. ActiveRecord mencoba menyambung ke database yang salah menggunakan rbenv

  4. Postgresql mengubah nol menjadi nol

  5. Memasang ekstensi hstore dalam tes hidung Django