SQL边界框优化

时间:2011-12-16 22:27:14

标签: mysql sql indexing

任何人都可以链接到有关SQL中优化的边界框样式查询的任何文档吗?

在最基本的层面上,想象一个由x,y浮点列组成的表,我们在表中查询某个(x1,x2),(y1,y2)范围内的行。执行此操作的查询很简单,但是定义索引以确保此查询有效运行的最佳方法是什么?

我们可以简单地在x和y列上创建一个索引,或者我可以在x和y列上创建一个索引,但是我不太了解SQL索引来推理我的方法。

我正在使用MySQL。

2 个答案:

答案 0 :(得分:1)

空间填充曲线最好将2d空间减少到1d问题。它的构造就像一个分形,基本上是表面的灰色代码遍历。您可以将类似于霍夫曼代码的四叉树路径无前缀密钥放在一起,而不是计算索引。然后,您可以使用简单的字符串查询来检索框。 MySql有一个空间索引扩展,但我不知道它们使用的是什么曲线。它可能是简单的z曲线或peano曲线。你可以看看Nick空间索引quadtree hilbert曲线博客。单调的n-ary格雷码也很有趣。

答案 1 :(得分:1)

mysqls spatial extensions

它可以使用r tree indexes

然后你有像mbrwithin

这样的便利功能

似乎正好在你的小巷里