任何人都可以链接到有关 SQL 中优化边界框样式查询的任何文档吗?
在最基本的层面上,想象一个由 x,y 浮点列组成的表,我们查询表中特定 (x1,x2),(y1,y2) 范围内的行。执行此操作的查询很简单,但定义索引以确保此查询有效运行的最佳方式是什么?
我们可以简单地在 x 和 y 列上创建一个索引,或者我可以在 x 和 y 列上创建一个索引,但我对 SQL 索引的了解还不够多,无法推理我的方法。
我正在使用 MySQL。
最佳答案
空间填充曲线最适合将二维空间简化为一维问题。它的构造类似于分形,基本上是表面的格雷码遍历。您可以将类似于霍夫曼代码的四叉树路径无前缀 key 放在一起,而不是计算索引。然后您可以使用一个简单的字符串查询来检索一个框。 MySql 有一个空间索引扩展,但我不知道他们使用的是什么曲线。它可能是简单的 z 曲线或 peano 曲线。你可以看看 Nick spatial index quadtree hilbert curve blog。单调 n 元格雷码也可以很有趣。
关于mysql - SQL 边界框优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8540859/