Re: Is index enough to do simple fetch, or table is always used too?

Поиск
Список
Период
Сортировка
От David Rowley
Тема Re: Is index enough to do simple fetch, or table is always used too?
Дата
Msg-id 663166fa0812141315j107afa62l54ebe810b26c8786@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Is index enough to do simple fetch, or table is always used too?  ("Dmitry Koterov" <dmitry@koterov.ru>)
Ответы Re: Is index enough to do simple fetch, or table is always used too?  ("Merlin Moncure" <mmoncure@gmail.com>)
Список pgsql-general
2008/12/14 Dmitry Koterov <dmitry@koterov.ru>:
>
> On Sun, Dec 14, 2008 at 3:36 PM, David Rowley <dgrowley@gmail.com> wrote:
>>
>> 2008/12/14 Dmitry Koterov <dmitry@koterov.ru>:
>> > The question: if the table "tbl" scanned to fetch "id" and calculate
>> > md5(id), or the value of "id" is brought directly from "idx" index with
>> > no
>> > table data access at all? The second behaviour is logical: why should we
>> > access the table if all the needed data is already in the index entry...
>>
>> In fact not all the required information is in the index. Postgresql
>> uses Multi-version-concurrency-control, which means there may be multi
>> versions of the same row. Postgresql must hit the heap (table) no get
>> the visibility information.
>
> But isn't an index data is also multi-version?

Yes. with some exections where HOT does not add another index entry if
the new row fits on the same page as the old one and the index value
does not change.

The index does not know if the row is dead or alive to the current
transaction. This is only known by the heap. So for your example query
to execute, it may be possible to scan the index but the heap will
need to be checked to see if the row is alive or dead.

> If no, how could a single-versioned index be used to fetch the data from a
> past snapshot?
>

David

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

Предыдущее
От: "Dmitry Koterov"
Дата:
Сообщение: Re: Is index enough to do simple fetch, or table is always used too?
Следующее
От: Sebastian Böhm
Дата:
Сообщение: tup_returned/ tup_fetched