Opened 11 years ago
Last modified 8 months ago
#2614 new enhancement
Prepared geometry support for ST_DWithin
Reported by: | robe | Owned by: | pramsey |
---|---|---|---|
Priority: | high | Milestone: | PostGIS Fund Me |
Component: | postgis | Version: | master |
Keywords: | Cc: |
Description (last modified by )
In some cases, despite what we tell people, doing an
ST_Intersects(geom1, ST_Buffer(geom2,radius))
is sometimes faster than ST_DWithin(geom1,geom2, radius)
Granted ST_DWithin is more accurate.
I'll come up with a small self-standing example to demonstrate the point. The one I have currently is kind of hefty.
But basic assumption is if you have a fairly large constant geometry then ST_Intersects(ST_Buffer..) often out performs ST_DWithin. I assume this is because ST_Intersects takes advantage of prepared geometries and ST_DWithin does not.
Change History (14)
comment:1 by , 11 years ago
Description: | modified (diff) |
---|
comment:2 by , 10 years ago
comment:3 by , 10 years ago
Priority: | medium → high |
---|
comment:4 by , 9 years ago
Milestone: | PostGIS 2.2.0 → PostGIS 2.3.0 |
---|
comment:6 by , 8 years ago
Milestone: | PostGIS 2.3.0 → PostGIS 2.4.0 |
---|
comment:7 by , 7 years ago
Milestone: | PostGIS 2.4.0 → PostGIS 2.5.0 |
---|
comment:10 by , 6 years ago
Milestone: | PostGIS 2.5.0 → PostGIS next |
---|
comment:12 by , 5 years ago
Milestone: | PostGIS 3.0.0 → PostGIS Fund Me |
---|
comment:13 by , 8 months ago
For the record: GEOS-3.10 (2021-10-20) added GEOSDistanceWithin and GEOSPreparedDistanceWithin and I know they are both much faster than the current lwgeom_mindist2d_tolerance implementation ( see https://trac.osgeo.org/postgis/ticket/3587#comment:45 )
comment:14 by , 8 months ago
Still for the record: GEOSDistanceWithin is also faster when I force the use of the so called "fast" distance calculation in PostGIS, for the case of a large ring compared against a ring inside of it.
This is my distance rect-tree improvement, which is still sitting half-done, taunting me... it scares me too, since distance is only 95% of what people do all the time. Mucking with it is scary.