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

W PostgreSQL dziwny problem z wydajnością citexta?

Nie wywołuje funkcji SQL lower . Jak mówi dokumentacja, zasadniczo wewnętrznie wywołuje lower .

Wywołania mają miejsce w funkcjach C, które implementują citext operacje porównawcze. I zamiast wywoływać lower , przechodzą bezpośrednio do podstawowej str_tolower() rutyna. Możesz to zobaczyć na własne oczy w kodzie źródłowym , z których większość jest stosunkowo łatwa do prześledzenia w tym przypadku.

Więc to, co mniej więcej oszczędzasz, to narzut dwóch wywołań funkcji SQL na porównanie. Co nie jest bez znaczenia w porównaniu z kosztem samego porównania, ale prawdopodobnie nigdy nie zauważysz żadnego z nich obok innych kosztów w typowym zapytaniu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie aktualnego czasu w UTC jako wartości domyślnej w PostgreSQL

  2. Usuń obiekty z zapytania, jeśli Brak lub Null

  3. Jak połączyć się ze zdalną bazą danych PostgreSQL przez SSL za pomocą Pythona?

  4. PostgreSQL vs Oracle:sprawdzanie PL/pgSQL w czasie kompilacji

  5. Używanie razem sqldf i RPostgreSQL