1

我有一组大约 1000 万个带有地理位置和时间标记的文档,并且以每天大约 100,000 个的速度增长。我们需要一种很好的方法来查询给定纬度/经度附近的文档,但我们也需要考虑时间(最近的文档应该具有更高的权重)。

我当前的解决方案需要大约 300 毫秒来运行查询,并且在负载增加的情况下苦苦挣扎,所以我试图找出一种更好的方法来做到这一点。我使用 3 维 kd-tree(纬度、经度和时间)制作了一个原型,它的速度非常快(<1 ms)。然而,它根本不适合生产——它需要将整个东西加载到内存中,更重要的是,似乎没有一个好的方法来写入/删除 kd-tree。我正在寻找一个生产就绪的数据库,它提供接近这种速度的东西,但也支持正常的 INSERT 和 UPDATE 操作。

我查看了 PostGIS,它说它支持 2-4 维空间字段。但是,我找不到任何关于它是否支持 >2 dimensional spatial indices的结论性信息。有谁知道它是否会支持 3D 索引,如果支持,它看起来是否相对高效?如果没有,还有其他选择吗?

提前致谢。

4

1 回答 1

1

经过一番谷歌搜索后,发现此页面包含有关 PostGIS 中的 ND 索引的有用信息。看起来 PostGIS 是解决这个问题的方法;明天我会尝试建立一个原型。

于 2013-05-15T02:23:00.947 回答