Обсуждение: order after WHERE clause

Поиск
Список
Период
Сортировка

order after WHERE clause

От
Kovacs Zoltan
Дата:
Is it possible that I get different query result time if I change two
parts of the WHERE clause? I.e.,

SELECT * FROM table WHERE col1 = 5 AND col2 = 6;

and

SELECT * FROM table WHERE col2 = 6 AND col1 = 5;

In general, is it important how I define the ordering in a WHERE clause?

TIA, Zoltan

--                         Kov\'acs, Zolt\'an                        kovacsz@pc10.radnoti-szeged.sulinet.hu
          http://www.math.u-szeged.hu/~kovzol                        ftp://pc10.radnoti-szeged.sulinet.hu/home/kovacsz
 



Re: order after WHERE clause

От
Tom Lane
Дата:
Kovacs Zoltan <kovacsz@pc10.radnoti-szeged.sulinet.hu> writes:
> Is it possible that I get different query result time if I change two
> parts of the WHERE clause? I.e.,
> SELECT * FROM table WHERE col1 = 5 AND col2 = 6;
> and
> SELECT * FROM table WHERE col2 = 6 AND col1 = 5;

It's possible that could matter if there are two alternative query plans
that are estimated to have the exact same cost by the planner --- in
that situation, the first one considered will be preferred, and the
ordering of WHERE clauses could affect the order in which alternatives
are examined.  The odds of this happening are pretty small, I think,
unless (a) you've never vacuum analyzed or (b) the data statistics are
in fact identical for the two columns.  But in case (b) it shouldn't
matter which plan is picked anyway.
        regards, tom lane