Odmiany wydajności PostgreSQL LIKE
Widziałem dość duże różnice w czasach odpowiedziLIKE
zapytania do konkretnej tabeli w mojej bazie danych. Czasami uzyskuję wyniki w ciągu 200-400 ms (bardzo akceptowalne), ale innym razem może to zająć nawet 30 sekund, aby zwrócić wyniki.
Rozumiem, żeLIKE
zapytania są bardzo intensywne, ale po prostu nie rozumiem, dlaczego będzie tak duża różnica czasów odpowiedzi. Zbudowałem indeks btree na stronieowner1
pole, ale nie sądzę, że to pomagaLIKE
zapytania. Czy ktoś ma jakieś pomysły?
Przykładowy SQL:
SELECT gid, owner1 FORM parcels
WHERE owner1 ILIKE '%someones name%' LIMIT 10
Próbowałem też:
SELECT gid, owner1 FROM parcels
WHERE lower(owner1) LIKE lower('%someones name%') LIMIT 10
I:
SELECT gid, owner1 FROM parcels
WHERE lower(owner1) LIKE lower('someones name%') LIMIT 10
Z podobnymi wynikami.
Liczba wierszy tabeli: około 95 000.