I wonder if there could be a performance gain to re organize the rows in a table by Geohash and then CLUSTER this table on the Geohash index of the geometries.
CREATE TEMPORARY TABLE tmptbl AS
SELECT *, (st_geohash(st_transform(geom,4326),10))as geohash
FROM mytable ORDER BY geohash;
DELETE FROM mytable;
ALTER TABLE tmptbl DROP COLUMN geohash;
INSERT INTO mytable SELECT * FROM tmptbl;
DROP INDEX mytable _geom_gist;
CREATE INDEX mytable _geom_gist
ON mytable USING gist(geom);
CREATE INDEX mytable_geom_geohash
ON mytable (st_geohash(st_transform(geom,4326),10));
CLUSTER mytable USING mytable_geom_geohash;
Thanks