要旨インデックスに問題があります。'geog'(geography、multipolygon)columnyのテーブル'country'があります。このコラムにも要点索引があります。2行のテーブル(各「geog」は約5MB)に対するST_CoveredBy()を使用したこの単純なクエリには、13秒かかります(クエリ結果は正しいです)。
select c."ID" from gis.country c where ST_CoveredBy(ST_GeogFromText('SRID=4326;POINT(8.4375 58.5791015625)'), c."geog") =true
インデックスを削除すると、クエリにも13秒かかりました。
私がすでにしたこと:
- VACUUM ANALYZE gis.country( "geog")
- おそらくこれが問題です:「GEOMETRYCOLLECTIONを引数として呼び出さないでください」私は読んだことがあります(http://www.mail-archive.com/postgis-users@postgis.refractions.net/msg17780.html)。重複するポリゴンがありますが、国の地図には重複するポリゴンが存在しないためです
編集
クエリプラン-
Index Scan using sindx_country_geography_col1 on country c (cost=0.00..8.52 rows=1 width=4)
Index Cond: ('0101000020E61000000000000000E0204000000000204A4D40'::geography && "geog")
Filter: _st_covers("geog", '0101000020E61000000000000000E0204000000000204A4D40'::geography)