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

Postgres LIKE '...%' nie używa indeksu

PostgreSQL zrobi to, jeśli zbudujesz indeks za pomocą text_pattern_ops operatora lub jeśli używasz sortowania C.

Jeśli używasz jakiegoś innego losowego sortowania, PostgreSQL nie może wiele z niego wywnioskować. Zwróć uwagę na to, w bardzo powszechnym zestawieniu "en_US.utf8".

select * from (values ('03.000221.1'), ('03.0002212'), ('03.000221.3')) f(x) order by x;
      x      
-------------
 03.000221.1
 03.0002212
 03.000221.3

Co w naturalny sposób prowadzi do tej błędnej odpowiedzi w zapytaniu:

select * from (values ('03.000221.1'), ('03.0002212'), ('03.000221.3')) f(id)
    where ((id >= '03.000221.'::text) AND (id < '03.000221.Z'::text))
     id      
-------------
 03.000221.1
 03.0002212
 03.000221.3



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PGEast, analiza porównawcza sprzętu i farma wydajności PG

  2. Jak usunąć nieużywane pliki tymczasowe z Postgresa zarządzanego przez Google Cloud SQL?

  3. problem npgsql w aplikacji c# - istniejące połączenie zostało wymuszone przez zdalnego hosta

  4. Tworzenie zrzutu bazy danych dla określonych tabel i wpisów Postgres

  5. Brak odpowiedniego sterownika. Próba połączenia się z bazą danych postgresql na Heroku za pomocą Hibernate