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屋のネタ帳