数据库位置索引

时间:2016-06-21 20:52:57

标签: database

是否有人知道任何对基于位置的索引具有本机支持的数据库(SQL或NoSQL)?

为了澄清,在许多情况下,我需要维护基于位置的集合,其中订单或位置由外部实体(用户,外部服务等)维护。通过维护,我的意思是集合中的项目的顺序将经常更改,但不是基于记录中的任何数据字段,就维护集合的服务而言,顺序是完全任意的。该服务需要提供一个接口,允许CRUD功能按位置(在Pos X后插入,在Pos Y删除等)以及操作位置(从pos X移动到pos Y)。

我知道有一些解决方法可以实现这一点,我自己已经实现了很多,但这似乎是一种想要索引数据的非常基本的方法。所以我无法帮助,但我觉得必须有一个现成的解决方案。

我所看到的唯一接近这一点的是Redis的List数据类型,虽然它按位置排序,但是非常有限(与具有多个索引的表相比)和Redis更适合作为缓存而不是持久数据存储。

最后我问这个问题,因为我需要一个需要用户订购的可能包含10,000条记录的集合。

1 个答案:

答案 0 :(得分:0)

如果它对任何人有帮助,到目前为止我发现的最佳近似是在图数据库(如Neo4J)中实现链接列表结构。维护项链接比维护位置列要容易得多(特别是如果您只需要下一个链接,即没有双重链接)。它更容易,因为不需要留下空洞,重新索引等,你只需要移动指针(或关系)。性能非常好,但如果您尝试按位置访问列表末尾的项目,则读取速度会线性减慢,因为您必须从头开始扫描(跳过)整个列表。