PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Strategia indeksowania dla różnych kombinacji klauzul WHERE, w tym. wzorce tekstowe

Dodany predykat używa LIKE operator:

AND network LIKE '%'

Rzeczywisty plan zapytania zależy od tego, co przekazujesz zamiast „%”. Ale ogólnie rzecz biorąc, zwykłe indeksy btree są do tego bezużyteczne. Będziesz potrzebować indeksu trygramów lub skorzystać z infrastruktury wyszukiwania tekstu lub podobnego, w zależności od tego, jakich wzorców możesz szukać.

Zobacz:

Możesz nawet połączyć wiele strategii indeksowania. Przykład:

Jeśli tak ma być:

AND network = '<input_string>'

wtedy, na wszelki wypadek, faktycznie użyj = operator, a nie LIKE . Powody w porządku rosnącym według ważności:

  1. krótsze
  2. mniej zagmatwane
  3. ułatwia pracę planistom Postgres (bardzo nieznacznie taniej)
  4. poprawnie

    Jeśli przypadkowo przekażesz ciąg ze znakami specjalnymi, możesz otrzymać nieprawidłowe wyniki. Zobacz:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć zadanie cron, aby uruchomić funkcję postgres SQL?

  2. Docker czeka na uruchomienie postgresql

  3. Co zrobić z wartościami null podczas modelowania i normalizacji?

  4. Wstawianie/aktualizacja zbiorcza Postgres, która jest bezpieczna dla wstrzyknięć. Może funkcja, która pobiera tablicę?

  5. Jak przechwytywać rekordy błędów za pomocą JDBCTemplate batchUpdate w postgreSql?