支持三维空间索引的数据库



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

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

我查看了PostGIS,它说它支持2-4维空间字段。但是,我找不到任何关于它是否支持>2维空间索引的结论性信息。有人知道它是否支持3D索引吗?如果支持的话,它的性能如何?如果没有,还有其他选择吗?

在google上搜索了一下之后,发现这个页面有关于在PostGIS中N-D索引的有用信息。看起来PostGIS是解决这个问题的方法;我明天试着做一个原型。

最新更新