Re: Index use in BETWEEN statement...
От | Yonatan Ben-Nes |
---|---|
Тема | Re: Index use in BETWEEN statement... |
Дата | |
Msg-id | 433930E5.7090800@canaan.co.il обсуждение исходный текст |
Ответ на | Re: Index use in BETWEEN statement... (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Index use in BETWEEN statement...
|
Список | pgsql-general |
Tom Lane wrote: > "Cristian Prieto" <cristian@clickdiario.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.
В списке pgsql-general по дате отправления: