Re: still gin index creation takes forever

Поиск
Список
Период
Сортировка
От Teodor Sigaev
Тема Re: still gin index creation takes forever
Дата
Msg-id 491B0E60.4020706@sigaev.ru
обсуждение исходный текст
Ответ на Re: still gin index creation takes forever  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: still gin index creation takes forever  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
>> GIN's build algorithm could use bulk insert of ItemPointers if and only if they
>> should be inserted on rightmost page (exact piece of code - dataPlaceToPage() in
>> gindatapage.c, lines 407-427)
>
> I'm not following.  Rightmost page of what --- it can't be the whole
> index, can it, or the case would hardly ever apply?

GIN's index contains btree over keys (entry tree) and for each key it
contains list of ItemPointers (posting list) or btree over ItemPointers
(posting tree or data tree) depending on its quantity. Bulk insertion
process collects into memory keys and sorted arrays of ItemPointers, and
then for each keys, it tries to insert every ItemPointer from array into
corresponding data tree one by one. But if the smallest ItemPointer in
array is greater than the biggest stored one then algorithm will insert
the whole array on rightmost page in data tree.

So, in that case process can insert about 1000 ItemPointers per one data
tree lookup, in opposite case it does 1000 lookups in data tree.

В списке pgsql-general по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: Table bloat and vacuum
Следующее
От: Naomi Walker
Дата:
Сообщение: Upgrade in Place