0

我正在设计一个数据库来存储地理位置。我想实现与谷歌地图类似的功能。使用场景是,我有大量的点,以及相关的X、Y位置。数据库很少更新(例如添加新点或修改现有点的 X、Y 位置),但经常查询。查询场景是,对于给定的正方形(正方形的4个角点X、Y位置已知),查找正方形中的所有点和相关的X、Y位置。

我想知道如何设计数据库以优化查询性能。我的设计问题与地图数据库设计非常相似。我也想知道是否实现了谷歌地图或传统地图数据库以达到最佳性能?

我是地图数据库设计领域的新手,如果有人可以为新手参考一些教程,我将不胜感激。

提前谢谢,乔治

4

2 回答 2

1

您是否绑定到某些现有的数据库后端?一些数据库(如MongoDBPostgreSQL)已经内置了这个特性。

于 2011-02-07T16:03:42.110 回答
1

乔治,你会找到你的职位

where (geoX between %x1 and %x2) and (geoY between %Y1 and %y2)

关于索引,因为您可能总是会同时查询 X 和 Y,所以使用单个索引即可: idx_XY (geoX, geoY)

如果需要仅搜索 Y,请添加第二个索引

idx_Y (geoY)

(我会将 X / Y 重命名为 long/lat,但这或多或少是个人问题,;-)

问候,/t

于 2011-02-08T13:54:39.517 回答