Database 数据库设计性能问题征求意见

Database 数据库设计性能问题征求意见,database,performance,geo,Database,Performance,Geo,我正在设计一个数据库来存储地理位置。我想实现类似谷歌地图的功能。使用场景是,我有大量的点,以及相关的X、Y位置。数据库很少更新,例如添加新点或修改现有点的X、Y位置,但经常查询。查询场景是,对于给定的正方形,正方形的4个角点X,Y位置已知,查找正方形中的所有点和相关X,Y位置 我想知道如何设计数据库以优化查询性能。我的设计问题与地图数据库设计非常相似。我还想知道是否谷歌地图或传统地图数据库的实施,以实现最佳性能 我是地图数据库设计领域的新手,如果有人能为新手参考一些教程,我将不胜感激 提前感谢,

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

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

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

提前感谢,,
George

您是否绑定到某个现有的数据库后端?有些数据库喜欢并且已经内置了此功能。

George, 你会找到你的位置

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

谢谢Alex,我无法使用您提到的现有数据库。由于遗留系统的原因,我必须自己从头开始设计。我是基于SQL Server或Oracle数据库的遗留应用程序,使用的是混合数据库系统。因此,我想学习MongoDB或PostgreSQL如何实现地图数据库的思想,然后我可以在我的遗留应用程序中使用类似的思想,可能比它们更简单。你有关于如何设计地图数据库的推荐教程吗?在最简单的实现中,如果你不需要知道点之间的距离或担心真正的圆半径搜索,那么它只是一个边界检查,如从表中选择*,其中lat>x1和laty1和lon