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

Strategi pengindeksan untuk kombinasi yang berbeda dari klausa WHERE termasuk. pola teks

Predikat yang Anda tambahkan menggunakan LIKE operator:

AND network LIKE '%'

Rencana kueri yang sebenarnya bergantung pada apa yang Anda berikan alih-alih '%'. Namun, umumnya, indeks btree biasa tidak berguna untuk ini. Anda memerlukan indeks trigram atau menggunakan infrastruktur pencarian teks atau sejenisnya, tergantung pada pola yang mungkin Anda cari.

Lihat:

Anda bahkan dapat menggabungkan beberapa strategi pengindeksan. Contoh:

Jika itu seharusnya:

AND network = '<input_string>'

lalu, tentu saja, gunakan = operator, bukan LIKE . Alasan dalam urutan kepentingan:

  1. lebih pendek
  2. kurang membingungkan
  3. membuat pekerjaan perencana Postgres lebih sederhana (sangat sedikit lebih murah)
  4. benar

    Jika Anda melewatkan string dengan karakter khusus secara tidak sengaja, Anda mungkin mendapatkan hasil yang salah. Lihat:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permata PG tidak dapat dipasang di aplikasi Rails:Permata::Ext::BuildError:ERROR:Gagal membuat ekstensi asli permata

  2. Skema database relasional untuk sumber acara

  3. Kunci penasihat atau SEKARANG untuk menghindari menunggu baris yang terkunci?

  4. Apa yang harus diindeks pada kueri dengan banyak kolom dalam klausa WHERE

  5. Masalah dengan JOOQ json binding