Re: GIN индекс - можно ли избавиться от Recheck?

Поиск
Список
Период
Сортировка
От Dmitry E. Oboukhov
Тема Re: GIN индекс - можно ли избавиться от Recheck?
Дата
Msg-id 20160509063935.GA21910@vdsl.uvw.ru
обсуждение исходный текст
Список pgsql-ru-general
имеется табличка

> \d test
                         Таблица "public.test"
 Колонка |   Тип   |                   Модификаторы
---------+---------+---------------------------------------------------
 id      | integer | NOT NULL DEFAULT nextval('test_id_seq'::regclass)
 tags    | text[]  | NOT NULL
Индексы:
    "test_pkey" PRIMARY KEY, btree (id)


заполняем тестовую таблицу

> INSERT INTO test
    SELECT
        generate_series(1, 10000000, 1) id,
        ARRAY[
            (ARRAY['abc', 'cde', 'def', 'ghi'])[1 + (random()*3)::INTEGER],
            (ARRAY['abc', 'cde', 'def', 'ghi'])[1 + (random()*3)::INTEGER]
        ] tags;
INSERT 0 10000000

> select count(*) FROM test;
  count
----------
 10000000
(1 строка)

Строим GIN индекс

> CREATE INDEX test_idx ON test USING GIN(tags);
CREATE INDEX

> EXPLAIN ANALYZE SELECT * FROM test WHERE tags @> ARRAY['abc', 'cde']::TEXT[];
                                                             QUERY PLAN
             

-------------------------------------------------------------------------------------------------------------------------------------
 Bitmap Heap Scan on test  (cost=17511.01..131825.49 rows=1668518 width=41) (actual time=286.438..519.681 rows=1109868
loops=1)
   Recheck Cond: (tags @> '{abc,cde}'::text[])
   Heap Blocks: exact=93458
   ->  Bitmap Index Scan on test_idx  (cost=0.00..17093.88 rows=1668518 width=0) (actual time=271.244..271.244
rows=1109868loops=1) 
         Index Cond: (tags @> '{abc,cde}'::text[])
 Planning time: 0.665 ms
 Execution time: 552.225 ms
(7 строк)

В документации написано что Gin использует Recheck только когда
используются веса, но тут никакие веса не используются.
На recheck он потратил столько же времени сколько на выборку.

можно ли от этого избавиться?

--

. ''`.                               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 по дате отправления:

Предыдущее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: GIN индекс - веса
Следующее
От: Oleg Bartunov
Дата:
Сообщение: Re: [pgsql-ru-general] GIN индекс - можно ли избавиться от Recheck?