Re: index refuses to build [DEFINITELY SOLVED :-]
От | Jean-Yves F. Barbier |
---|---|
Тема | Re: index refuses to build [DEFINITELY SOLVED :-] |
Дата | |
Msg-id | 20111230170613.71f77850@anubis.defcon1 обсуждение исходный текст |
Ответ на | Re: index refuses to build [finally SOLVED, but still some questions] ("Jean-Yves F. Barbier" <12ukwn@gmail.com>) |
Список | pgsql-novice |
On Fri, 30 Dec 2011 07:34:28 +0100 "Jean-Yves F. Barbier" <12ukwn@gmail.com> wrote: Ok, I found the answer on postgresql.fr forum and here the mod'op: * Delete my old function that used TEXT for I/O, * Recreate it using VARCHAR for I/O, (not mandatory, as explain talks about ::text and test show the same results w/ either TEXT or VARCHAR), * Delete the index, * Recreate it with some specialization salt: CREATE INDEX tst1m_name_lu_key ON tst1m(lower(jyunaccent(name)) varchar_pattern_ops); * Retest: EXPLAIN ANALYZE SELECT * FROM tst1m WHERE lower(erpunaccent(name)) LIKE 'ogvvatoie%'; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------------------- Bitmap Heap Scan on tst1m (cost=17.90..1211.87 rows=500 width=100) (actual time=0.254..0.256 rows=1 loops=1) Filter: (lower((erpunaccent(name))::text) ~~ 'ogvvatoie%'::text) -> Bitmap Index Scan on tst1m_name_lu_key (cost=0.00..17.78 rows=500 width=0) (actual time=0.054..0.054 rows=1 loops=1) Index Cond: ((lower((erpunaccent(name))::text) ~>=~ 'ogvvatoie'::text) AND (lower((erpunaccent(name))::text) ~<~'ogvvatoif'::text)) Total runtime: 0.338 ms (5 lignes) Which isn't bad on a table w/10,000 rows and a column randomly filled length [14-32]. Hehe. -- I don't think it's worth washing hogs over. -- Larry Wall in <199710060253.TAA09723@wall.org>
В списке pgsql-novice по дате отправления: