coercing int to bigint for indexing purposes

Поиск
Список
Период
Сортировка
От Mark Harrison
Тема coercing int to bigint for indexing purposes
Дата
Msg-id 402AAEF1.2050703@pixar.com
обсуждение исходный текст
Ответы Re: coercing int to bigint for indexing purposes  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-performance
Is there a way to automatically coerce an int into a bigint for
indexing purposes?

We have a table with a bigint column that is an index.
For mi, there's no problem, since I now know to say
    select * from foo where id = 123::bigint
but our casual users still say
    select * from foo where id = 123
causing a sequential scan because the type of 123 is not
a bigint.

As you can see, there's nearly 4 orders of magnitude difference
in time, and we anticipate this will only get worse as our
tables increase in size:

LOG:  duration:    0.861 ms  statement: select * from big where id = 123123123123123;
LOG:  duration: 6376.917 ms  statement: select * from big where id = 123;

One thing I have considered is starting our id sequence at 5000000000
so that "real" queries will always be bigint-sized, but this seems
to me a bit of a hack.

Many TIA,
Mark

--
Mark Harrison
Pixar Animation Studios


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

Предыдущее
От: "scott.marlowe"
Дата:
Сообщение: Re: slow database
Следующее
От: Tom Lane
Дата:
Сообщение: Re: coercing int to bigint for indexing purposes