| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | "Cristian Prieto" <cristian(at)clickdiario(dot)com> |
| Cc: | "'Sean Davis'" <sdavis2(at)mail(dot)nih(dot)gov>, pgsql-general(at)postgresql(dot)org, pgsql-performance(at)postgresql(dot)org |
| Subject: | Re: Index use in BETWEEN statement... |
| Date: | 2005-09-26 19:17:23 |
| Message-ID: | 1896.1127762243@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general pgsql-performance |
"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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2005-09-26 19:23:33 | Re: Error migrating from 7.4.3 to 8.0.3 |
| Previous Message | Peter Wiersig | 2005-09-26 18:58:54 | Re: SQL command to dump the contents of table failed: PQendcopy() |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Don Isgitt | 2005-09-26 19:44:42 | Re: Index use in BETWEEN statement... |
| Previous Message | Alvaro Herrera | 2005-09-26 18:42:53 | Re: int2 vs int4 in Postgres |