pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: arhipov <arhipov@dc.baikal.ru>
To: pgsql-performance@postgresql.org
Subject: Postgres does not use indexes with OR-conditions
Date: Fri, 07 Nov 2014 12:16:27 +0800
Message-ID: <545C479B.7010104@dc.baikal.ru> (raw)
List-Unsubscribe:  <mailto:majordomo@postgresql.org?body=unsub%20pgsql-performance>

Hello,

I have just came across interesting Postgres behaviour with 
OR-conditions. Are there any chances that the optimizer will handle this 
situation in the future?

select *
from commons.financial_documents fd
where fd.creation_time <= '2011-11-07 10:39:07.285022+08'
order by fd.creation_time desc
limit 200

"Limit  (cost=4.30..44.50 rows=200 width=67) (actual time=0.032..1.376 
rows=200 loops=1)"
"  ->  Index Scan Backward using financial_document_creation_time_index 
on financial_documents fd (cost=4.30..292076.25 rows=1453075 width=67) 
(actual time=0.027..0.683 rows=200 loops=1)"
"        Index Cond: (creation_time <= '2011-11-07 
11:39:07.285022+09'::timestamp with time zone)"
"Total runtime: 1.740 ms"

select *
from commons.financial_documents fd
where fd.creation_time = '2011-11-07 10:39:07.285022+08'
    or fd.creation_time < '2011-11-07 10:39:07.285022+08'
order by fd.creation_time desc
limit 200

"Limit  (cost=4.30..71.76 rows=200 width=67) (actual 
time=1067.935..1069.126 rows=200 loops=1)"
"  ->  Index Scan Backward using financial_document_creation_time_index 
on financial_documents fd (cost=4.30..490104.07 rows=1453075 width=67) 
(actual time=1067.927..1068.532 rows=200 loops=1)"
"        Filter: ((creation_time = '2011-11-07 
11:39:07.285022+09'::timestamp with time zone) OR (creation_time < 
'2011-11-07 11:39:07.285022+09'::timestamp with time zone))"
"        Rows Removed by Filter: 776785"
"Total runtime: 1069.480 ms"



-- 
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance



view thread (7+ messages)  latest in thread

Message-ID: <545C479B.7010104@dc.baikal.ru>
Permalink:  ../545C479B.7010104@dc.baikal.ru/
Also on:    postgresql.org/message-id/545C479B.7010104@dc.baikal.ru

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: arhipov@dc.baikal.ru
  Subject: Re: Postgres does not use indexes with OR-conditions
  In-Reply-To: <545C479B.7010104@dc.baikal.ru>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox