From: | Sean Davis <sdavis2(at)mail(dot)nih(dot)gov> |
---|---|
To: | Yonatan Ben-Nes <da(at)canaan(dot)co(dot)il>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Cristian Prieto <cristian(at)clickdiario(dot)com>, <pgsql-general(at)postgresql(dot)org>, <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Index use in BETWEEN statement... |
Date: | 2005-09-27 10:54:51 |
Message-ID: | BF5E9D3B.F2CA%sdavis2@mail.nih.gov |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-performance |
On 9/27/05 7:45 AM, "Yonatan Ben-Nes" <da(at)canaan(dot)co(dot)il> wrote:
> Tom Lane wrote:
>> "Cristian Prieto" <cristian(at)clickdiario(dot)com> writes:
>>
>>> mydb=# explain analyze select locid from geoip_block where
>>> '216.230.158.50'::inet between start_block and end_block;
>>
>>
>>> As you see it still using a sequential scan in the table and ignores the
>>> index, any other suggestion?
>>
>>
>> That two-column index is entirely useless for this query; in fact btree
>> indexes of any sort are pretty useless. You really need some sort of
>> multidimensional index type like rtree or gist. There was discussion
>> just a week or three ago of how to optimize searches for intervals
>> overlapping a specified point, which is identical to your problem.
>> Can't remember if the question was about timestamp intervals or plain
>> intervals, but try checking the list archives.
>>
>> regards, tom lane
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 4: Have you searched our list archives?
>>
>> http://archives.postgresql.org
>
> I think that Tom is talking about a discussion which I started entitled
> "Planner create a slow plan without an available index" search for it
> maybe it will help you.
> At the end I created an RTREE index and it did solved my problem though
> my data was 2 INT fields and not INET fields as yours so im not sure how
> can you work with that... To solve my problem I created boxes from the 2
> numbers and with them I did overlapping.
There is some code in this thread that shows the box approach explicitly:
http://archives.postgresql.org/pgsql-sql/2005-09/msg00189.php
Sean
From | Date | Subject | |
---|---|---|---|
Next Message | Yonatan Ben-Nes | 2005-09-27 11:34:37 | Re: How many insert + update should one transaction handle? |
Previous Message | Richard Huxton | 2005-09-27 10:45:23 | Re: Restore xxxxx.backup database |
From | Date | Subject | |
---|---|---|---|
Next Message | Андрей Репко | 2005-09-27 10:57:16 | Re: Index not used on group by |
Previous Message | Richard Huxton | 2005-09-27 10:48:15 | Re: Index not used on group by |