[postgis-devel] New node splitting algorithm for GiST

Paul Ramsey pramsey at opengeo.org
Tue Nov 13 14:14:47 PST 2012


This is now on trunk, with a #define KOROTKOV_SPLIT in
gserialized_gist_2d.c to turn it on/off. Some extra testing (you have
to build a new index to get the new split in effect, just querying an
existing index will make no difference at all) to ensure we have
more/better performance would be great.

http://trac.osgeo.org/postgis/ticket/1895

P.

On Sun, Jul 1, 2012 at 8:00 AM, Alexander Korotkov <aekorotkov at gmail.com> wrote:
> Done: http://trac.osgeo.org/postgis/ticket/1895
>
> ------
> With best regards,
> Alexander Korotkov.
>
> On Sun, Jul 1, 2012 at 5:54 PM, Paragon Corporation <lr at pcorp.us> wrote:
>>
>> Alex,
>>
>> Can you attach this to a ticket.  That way Paul won't forget or one of us
>> can remind him when he does :)
>>
>> http://trac.osgeo.org/postgis/
>>
>> Slate it for 2.1.0
>>
>> Thanks,
>> Regina
>>
>> ________________________________
>> From: postgis-devel-bounces at postgis.refractions.net
>> [mailto:postgis-devel-bounces at postgis.refractions.net] On Behalf Of
>> Alexander Korotkov
>> Sent: Sunday, July 01, 2012 8:33 AM
>> To: PostGIS Development Discussion
>> Subject: Re: [postgis-devel] New node splitting algorithm for GiST
>>
>> On Sat, Jun 30, 2012 at 10:59 PM, Paul Ramsey <pramsey at opengeo.org> wrote:
>>>
>>> No progress, still an "item of interest" in my list of things I might
>>> do. If you prepare a compile-time conditional patch, I'd be interested
>>> in reviewing and applying it.
>>
>>
>> OK, it's here.
>> Just an small example. Without patch.
>>
>> test=# create index geonames_idx on geonames using gist (point);
>> CREATE INDEX
>> Time: 113796,848 ms
>>
>> test=# explain (analyze, buffers) select * from geonames where point &&
>> 'BOX(34.4671 126.631,34.5023 126.667)'::box2d::geometry;
>>
>> QUERY PLAN
>>
>> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>  Index Scan using geonames_idx on geonames  (cost=0.00..14.05 rows=2
>> width=128) (actual time=0.589..0.876 rows=11 loops=1)
>>    Index Cond: (point &&
>> '0103000000010000000500000016FBCBEEC93B4140AAF1D24D62A85F4016FBCBEEC93B4140A69BC420B0AA5F40F163CC5D4B404140A69BC420B0AA5F40F163CC5D4B404140AAF1D24D62A85F4016FBCBEEC93B4140AAF1D24D62A85F40'::geometry)
>>    Buffers: shared hit=26
>>  Total runtime: 0.927 ms
>> (4 rows)
>>
>> With patch.
>>
>> test=# create index geonames2_idx on geonames2 using gist (point);
>> CREATE INDEX
>> Time: 118382,076 ms
>>
>> test=# explain (analyze, buffers) select * from geonames2 where point &&
>> 'BOX(34.4671 126.631,34.5023 126.667)'::box2d::geometry;
>>
>>
>> QUERY PLAN
>>
>> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>  Index Scan using geonames2_idx on geonames2  (cost=0.00..22.40 rows=4
>> width=128) (actual time=0.209..0.225 rows=11 loops=1)
>>    Index Cond: (point &&
>> '0103000000010000000500000016FBCBEEC93B4140AAF1D24D62A85F4016FBCBEEC93B4140A69BC420B0AA5F40F163CC5D4B404140A69BC420B0AA5F40F163CC5D4B404140AAF1D24D62A85F4016FBCBEEC93B4140AAF1D24D62A85F40'::geometry)
>>    Buffers: shared hit=11
>>  Total runtime: 0.276 ms
>> (4 rows)
>>
>> ------
>> With best regards,
>> Alexander Korotkov.
>>
>>
>> _______________________________________________
>> postgis-devel mailing list
>> postgis-devel at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-devel
>>
>
>
> _______________________________________________
> postgis-devel mailing list
> postgis-devel at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-devel
>



More information about the postgis-devel mailing list