Zastanawiam się, gdzie jest różnica między tymi dwoma sprzężeniami przestrzennymi i, jeśli istnieje różnica, kiedy ich użyć.
SELECT *
FROM points p, shapes s
WHERE ST_Within(p.geom, s.geom);
i
SELECT *
FROM points p
INNER JOIN shapes s ON ST_Within(p.geom, s.geom)
Czy w niektórych sytuacjach jest się szybszym?
postgis
postgresql
spatial-database
Stophface
źródło
źródło
JOIN
wyłącznie. Niestety, jak napisano, jest to bardziej czyste pytanie SQL i opinia na ten temat.Odpowiedzi:
Nie ma jednej różnicy dla obu stwierdzeń. Postgresql konwertuje oba do tego samego planu zapytań. Możesz zobaczyć plany, dodając je
EXPLAIN ANALYZE
przed wyborem i szukając rezultatu.źródło
EXPLAIN ANALYZE
przed wyborem i szukając rezultatu.