Re: Slow update with simple query

Поиск
Список
Период
Сортировка
От Arnaud Lesauvage
Тема Re: Slow update with simple query
Дата
Msg-id 457FF0CD.4050606@freesurf.fr
обсуждение исходный текст
Ответ на Re: Slow update with simple query  ("Jens Schipkowski" <jens.schipkowski@apus.co.at>)
Ответы Re: Slow update with simple query
Список pgsql-performance
Jens Schipkowski a écrit :
> the problem is a combination of bad formed SQL and maybe missing indexes.
> try this:
> UPDATE t1
> SET booleanfield = foo.bar
>  FROM (SELECT uid,(field IN ('some','other') AND field2 = 'Y') AS bar FROM
> t2) AS foo
> WHERE t1.uid=foo.uid;


Hi Jens,
Why is this query better than the other one ? Because it runs the
"(field IN ('some','other') AND field2 = 'Y')" once and then executes
the join with the resulting set ?

> and index t1.uid, t2.uid, t2.field, t2.field2

t1.field can only take 3 or 4 values (don't remember exactly), and
field2 only 2 ('Y' or 'N'). So this fields have a very low cardinality.
Won't the planner chose to do a table scan in such a case ?

Thanks for your advices !

--
Arnaud

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

Предыдущее
От: "Jens Schipkowski"
Дата:
Сообщение: Re: Slow update with simple query
Следующее
От: "Jens Schipkowski"
Дата:
Сообщение: Re: Slow update with simple query