Nałożyłem indeks BTREE na kolumnę name. Wg dokumentacji, operator LIKE bez gwiazdki z przodu powinien użyć indeksu. Niestety leci sekwencyjnie..
https://www.postgresql.org/docs/9.4/static/indexes-types.html
No chyba, że rozchodzi się o ten fragment, ale nie bardzo wiem o co w tym chodzi:
However, if your database does not use the C locale you will need to create the index with a special operator class to support indexing of pattern-matching queries
Moje zapytanie:
explain select * from XXXX where name like 'fi%'
Kodowanie bazy to pl_PL.UTF-8
, ale kolumna docelowo będzie raczej zawierała tylko ASCII. Zastanawiam się jeszcze czy bawić się w unaccent po stronie postgresa, czy lepiej po stronie aplikacji zapisywać wersję znormalizowaną
i na niej robić LIKE.