Re: GIN индекс: сортировка
От | Dmitry E. Oboukhov |
---|---|
Тема | Re: GIN индекс: сортировка |
Дата | |
Msg-id | 20140929194541.GF30939@vdsl.uvw.ru обсуждение исходный текст |
Ответ на | GIN индекс: сортировка ("Dmitry E. Oboukhov" <unera@debian.org>) |
Список | pgsql-ru-general |
А еще по GIST может кто подскажет такая база: id, text база оч большая (база из прошлого примера, просто все строки сконкатенированы) строим GIST на триграммах CREATE INDEX "test_trgm_idx" ON "table" USING GIST ( "text" "public"."gist_trgm_ops" ); Далее кладем в базу мнооого записей. Далее запрос SELECT * FROM table ORDER BY "text" <-> 'test' LIMIT 100 Работает, но меееееедленно: EXPLAIN ANALYZE показывает такое: Limit (cost=0.67..209.06 rows=50 width=159) (actual time=36.071..2356.039 rows=50 loops=1) -> Index Scan using test_trgm_idx on table (cost=0.67..23567041.91 rows=5654375 width=159) (actual time=36.070..2356.012rows=50 loops=1) Order By: text <-> 'test' Total runtime: 2356.102 ms (4 строки) Я чет не понимаю. по идее он должен был бы открыть итератор и идти от наиболее похожих к наименее и взять первые 100. а он весь индекс перебирает (то есть проку от индекса - 0, без индекса работает столько же времени - 2 секунды) Вопрос: что сделать чтобы уменьшить время работы? -- . ''`. Dmitry E. Oboukhov : :’ : email: unera@debian.org jabber://UNera@uvw.ru `. `~’ GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
Вложения
В списке pgsql-ru-general по дате отправления: