Создаю индекс так:
create unique index idx_username on usersfrontend using btree (lower(username) varchar_pattern_ops);
Итоговая таблица:
\d+ usersfrontend
Table "public.usersfrontend"
Column | Type | Modifiers | Description
------------+-----------------------------+---------------------------------------------------------+-------------
id | integer | not null default nextval('usersfrontend_seq'::regclass) |
username | character varying(16) | not null |
Indexes:
"idx_username" UNIQUE, btree (lower(username::text) varchar_pattern_ops)
"idx_usersfrontend_uniq" UNIQUE, btree (id)
"idx_username_password" btree (username, password)
Ну вот что в итоге:
explain analyze select username from usersfrontend where lower(username) like 'Dex%'; QUERY PLAN
-------------------------------------------------------------------------------------------------------
Seq Scan on usersfrontend (cost=0.00..2.39 rows=1 width=7) (actual time=0.085..0.085 rows=0 loops=1)
Filter: (lower((username)::text) ~~ 'Dex%'::text)
Total runtime: 0.124 ms
Что не так?
|