纬度,经度,人口的最佳数据库架构?

时间:2013-03-30 18:36:06

标签: mysql database maps gis

我正在开发一个需要查询非常大的人口密度数据库的Web应用程序。数据基本上是纬度,经度和人口数(您可以将其抽象为 lat,lon,pop )。

我将使用MySQL和PHP。数据非常精细,因此总点数非常大 - 大约数十亿。 (实际上,我实际上并不知道它有多大,说实话;我还没有完整的数据,只有样本可以使用。)服务器只是一个廉价的服务器场机器(例如Bluehost)。

应用程序将尝试聚合以特定纬度和经度坐标为中心的任意半径圆的总体数据。所以基本上我会说,“告诉我一个 x 半径圆的总人口集中在 lat,lon 。”这可能只涉及编写一个非常简单的求和函数。

考虑到上述所有情况,以及尽可能快速有效的愿望,我的问题是:什么是最好的数据库架构?我看了here并且学习了一些关于存储这类数据的基础知识(浮点数对lat / lon数据工作正常,BETWEEN语句比<和>运算符更快),但是我想知道,如果给出大量数据,有一个比数十亿行和三个字段(例如 lat,lon,pop )的表更好的方法。

我想到的可能的想法是将所有主要的经度标题分成单独的表格,但我不知道这是否会真正加快速度。 (除了索引之外,我对MySQL优化知之甚少。)另一个相关的想法是为数据的各种“块”存储超长十六进制数据串(例如,特定的 lat x lon 正方形。)另一种选择是基本上使用大的二进制位图并且只是动态地解码它们(这对我来说,对我管理的相对便宜的服务器来说是不切实际的。)

但我不是DBA,甚至不是程序员(我不是初学者,但我不是专业人士),所以我很想听到有关如何做的任何其他建议鉴于目前的服务器处理能力,这是否是一个坚定的想法。

0 个答案:

没有答案