Saya memiliki 150 juta poin dalam tabel poin dan ingin menemukan beberapa titik di luar geometri poligon yang diberikan. Saya tahu bahwa 99,9% poin berada dalam geometri poligon. Saya tertarik menemukan beberapa poin yang ada di luar poligon.
Permintaan terbaik saya saat ini menggunakan tabel PostGIS yang diindeks membutuhkan waktu sekitar 30 menit untuk menyelesaikannya. Apakah ada cara untuk mengoptimalkan kueri berikut mengetahui bahwa sebagian besar titik berada dalam poligon (perbatasan)?
SELECT COUNT(*)
FROM italy_points pt
JOIN borders poly
ON ST_WITHIN (pt.the_geom, poly.geom)
WHERE poly.iso3 = 'ITA';
Poligon pada dasarnya adalah admin 0 perbatasan Italia. Verteks - 405.000. Bagian - 510. Amplop ini jauh lebih besar dari poligon (Poligon mencakup 24% dari amplop)
GROUP BYkunci utama poin. (PostgreSQL memudahkan Anda untuk mereferensikan kolom apa pun dalam SELECTklausa yang berasal dari tabel di mana kunci utama termasuk dalam GROUP BYklausa.)
ST_Intersects, karena ST_Withintidak akan cocok dengan kondisi batas internal.