I did the test yesterday with an index on the three fields, and with a partial index on organization and status and where is null condition on handled. I saw no modification on query plan.
May be I forgot to analyze vacuum after. I will retry tonight.
I use a btree index. Is it the good solution, even with the In clause ?
Bertrand Paquet <bertrand.paquet@doctolib.fr> writes: > We have a slow query. After analyzing, the planner decision seems to be > discutable : the query is faster when disabling seqscan. See below the two > query plan, and an extract from pg_stats.
> Any idea about what to change to help the planner ?
Neither one of those plans is very good: you're just hoping that the Filter condition will let a tuple through sooner rather than later.
If you care about the performance of this type of query, I'd consider creating an index on (organization_id, status, handled_by) so that all the conditions can be checked in the index.