Performance 查找包含特定点的圆
我有一个包含许多Performance 查找包含特定点的圆,performance,database-design,Performance,Database Design,我有一个包含许多圆的数据库(每个圆都有x、y和半径)。 我需要找到每个圆,其中包括x/y给定的特定点 在中有没有比线性时间更好的方法? 测试每个循环会大大降低我的应用程序的速度 提前谢谢。除非你能按照非常具体的顺序对圆圈进行排序,否则我看不出这怎么能比线性时间更快 如果您向我们提供您的查询,可能还有一些很好的优化工作要做。在没有几何索引的情况下,在一些RDBMS中,您可以为以下内容创建基于函数的索引: x-r x+r y-r y+r 。。。并将谓词添加到查询中: select ... wher
圆的数据库(每个圆都有x、y和半径)。
我需要找到每个圆,其中包括x/y给定的特定点
在中有没有比线性时间更好的方法?
测试每个循环会大大降低我的应用程序的速度
提前谢谢。除非你能按照非常具体的顺序对圆圈进行排序,否则我看不出这怎么能比线性时间更快
如果您向我们提供您的查询,可能还有一些很好的优化工作要做。在没有几何索引的情况下,在一些RDBMS中,您可以为以下内容创建基于函数的索引:
x-r
x+r
y-r
y+r
。。。并将谓词添加到查询中:
select ...
where point_x between x-r and x+r and
point_y between y-r and y+r and
... etc ...
这至少会让你得到候选行。这是一个适当索引(例如排序)你的“数据库”的问题。问题是,虽然可以按轴(x或y)排序,但半径可能会有所不同。可能有很多方法可以返回结果,但我认为你无法击败线性时间方法。