Tom Lane wrote:
> Joseph Shraibman <jks@selectacast.net> writes:
>
>>No, pkey is not the primary key in this case. The number of entries in u
>>that have pkey 260 and not boolfield is 344706.
>
>
> ... and every one of those rows *must* be included in the join input,
*If* you use one big join in the first place. If postgres ran the query
to first get the values with status == 3 from u, then ran the query to
get the entries from d, then combined them, the result would be the same
but the output faster. Instead it is doing seq scans on both tables and
doing an expensive join that returns only a few rows.