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.

questionAnswers(7)

yourAnswerToTheQuestion