PostgreSQL9.1 近傍検索でGiSTインデックスが利用可能になった [メモ]
GPS情報から近いところを検索するようなアプリケーションで利用できそうだ
=# CREATE TABLE tbl (id serial, location point);
=# CREATE INDEX ON tbl USING gist (location);
=# EXPLAIN (COSTS OFF)
SELECT * FROM tbl ORDER BY location <-> '(2, 3)' LIMIT 3;
QUERY PLAN
- -
Limit
-> Index Scan using tbl_location_idx on tbl
Order By: (location <-> '(2,3)'::point)
(3 rows)
※参考ページより引用
point(平面における座標点)型から距離を計算する演算子<->で計算してソートをかける
参考
WEB屋のネタ帳