Hi Rémi,
have you taken a look at ST_GeoHash ?
It might be a good candidate for your constraint exclusion check.
There are restrictions though. Coordinates must be in lat/lon for instance.
http://postgis.net/docs/ST_GeoHash.html

Arnaud

Le 3/04/2015 10:49, Rémi Cura a écrit :
Now postgres offers partitioning, that is that you build a hierarchy of
tables.

In this case, you would have one empty father table, and all the
thousand table would be declared as child of the father table.
Now when you write
select * from father;
you query in fact all the child tables.

This is all good and working, but it will be inefficient, because each
time you look for geometry within a rectangle, you would have to read
all tables (using their index).
Of course having thousands of indexes in memory is not possible, so it
would be very slow.

Postgres offers a solution for that, which is to declare constraints
(check) on table.

So you would say, table child_1 is entirely contained in a rectangle R1,
table child_2 entirely contained in a rectangle R2, etc.

That way, when you query the father table and asking all the geometry
inside a rectangle R0,
the planner will first check in which tables i Ri intersects R0,
then it will only consider those tables, instead of considering all the
tables.

This is the theory. In practice the planner was not using those
constraints (check).



_______________________________________________
postgis-users mailing list
postgis-users@lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

Reply via email to