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:
- Variasi kinerja kueri SEPERTI PostgreSQL
- Pencocokan pola dengan LIKE, SIMILAR TO, atau ekspresi reguler di PostgreSQL
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:
- lebih pendek
- kurang membingungkan
- membuat pekerjaan perencana Postgres lebih sederhana (sangat sedikit lebih murah)
-
benar
Jika Anda melewatkan string dengan karakter khusus secara tidak sengaja, Anda mungkin mendapatkan hasil yang salah. Lihat: