Re: Odd new symptom - database locking up on a query

Поиск
Список
Период
Сортировка
От Nigel J. Andrews
Тема Re: Odd new symptom - database locking up on a query
Дата
Msg-id Pine.LNX.4.21.0207082341450.2576-100000@ponder.fairway2k.co.uk
обсуждение исходный текст
Ответ на Re: Odd new symptom - database locking up on a query  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Odd new symptom - database locking up on a query  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
On Mon, 8 Jul 2002, Tom Lane wrote:

> Doug Fields <dfields@pexicom.com> writes:
> > CREATE INDEX idx ON table (a,b);
>
> > And the query is of the form: (with hundreds in the static IN)
>
> > explain DELETE FROM table WHERE b=44 AND a IN
> > (1071164,1071176,1071188,1071200,1071212,1071224,1071236,1071248,1071260,1071272,1071284,1071296);
>
> > However, if the index is manually rebuilt accidentally as:
>
> > CREATE INDEX idx ON table (b,a);
>
> > (Note the a,b is reversed) THEN IT WILL NOT BE USED.
>
> Yup.  This has to do with the planner's search algorithm for potentially
> useful indexscan qualifications.  Given an indexable OR clause it's
> relatively cheap to see if we can extend it to additional index columns,
> but the other way around would require unconstrained search through all
> possible pairs of WHERE clauses, which looks like a bad idea to me.

Tom,

Are you sure about this? I read it as Doug is saying normally the index is
built with the order a, b which wouldn't be surprising [to me] if the index
wasn't used in a query using a test like b = 4 and a IN (lots). Whereas if the
index is built with the order reversed to b, a then the index really isn't used
but one would have thought it a good candidate for use.

I'm sure a while ago it was you who told me that the order in a multi column
index was significant and the first item was the 'major' selector...but then
may be I didn't read it properly and my mind just filled in what I would have
expected to be the case. I'll see if I can find the email but in the meantime
could you restate whether an index built with the order b,a would be a good
candidate for use in a query using a where clause of b = x AND a IN (long
list) please?

Thanks,

--
Nigel J. Andrews
Director

---
Logictree Systems Limited
Computer Consultants




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

Предыдущее
От: "João" Paulo Batistella
Дата:
Сообщение: Select in update
Следующее
От: Francisco Reyes
Дата:
Сообщение: Re: CRC function?