Tôi có 150 triệu điểm trong một bảng điểm và muốn tìm một vài điểm nằm ngoài hình học đa giác đã cho. Tôi biết rằng 99,9% số điểm nằm trong hình dạng đa giác. Tôi quan tâm đến việc tìm kiếm một vài điểm nằm ngoài đa giác.
Truy vấn tốt nhất hiện tại của tôi bằng cách sử dụng các bảng PostGIS được lập chỉ mục mất khoảng 30 phút để hoàn thành. Có cách nào để tối ưu hóa truy vấn sau đây khi biết rằng hầu hết các điểm nằm trong đa giác (viền) không?
SELECT COUNT(*)
FROM italy_points pt
JOIN borders poly
ON ST_WITHIN (pt.the_geom, poly.geom)
WHERE poly.iso3 = 'ITA';
Đa giác về cơ bản là đường viền quản trị 0 của Ý. Đỉnh - 405.000. Bộ phận - 510. Phong bì lớn hơn nhiều so với đa giác (Đa giác chiếm 24% phong bì)
GROUP BY
khóa chính của các điểm. (PostgreSQL thuận tiện cho phép bạn tham chiếu bất kỳ cột nào trong SELECT
mệnh đề xuất phát từ bảng có khóa chính được bao gồm trong GROUP BY
mệnh đề.)
ST_Intersects
, vì ST_Within
sẽ không phù hợp với các điều kiện biên nội bộ.