存储简单空间数据的最佳方法是什么

时间:2012-10-20 06:40:04

标签: database spatial

我有心思建立一个简单的游戏。它将有一个2D网格的游戏板,玩家可以在网格中的节点上放置令牌。

基本上我可以存储像{x, y, token}

这样的元组

当渲染显示网格一部分的UI时,我希望需要空间查询来收集数据。滚动时我会期待类似的查询。根据播放器的数量,网格可能变得庞大,但实际上我并不认为它会超出关系数据库可以轻松处理的范围。

我正在研究Spatial Databases,但我不知道这是否会增加问题而不是解决。这是怎么回事?我应该使用空间数据库,如果是,哪一个最适合这个(简单)问题?

1 个答案:

答案 0 :(得分:2)

与传统(1维)索引相比,空间索引为您带来了巨大的好处。查询如

x BETWEEN a AND b AND y BETWEEN c AND d

只能使用xy的索引。这意味着DBMS将能够排除a-b条带(列)之外的记录,但是对于其中的所有记录,必须研究y值。 (如果您有xy的复合索引,则无关紧要,因为x可能具有无限的基数。

空间索引可以同时处理两个维度,因此它将排除大部分数据库,它只需要测试与您的间隔相交的几个网格单位中的单个值。