mysql - SQL 边界框优化

标签 mysql sql indexing

任何人都可以链接到有关 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/

相关文章:

php - 为什么我的 MySQL 字段在更新时重置为 null?

stored-procedures - mysql存储过程: using declared vars in a limit statement returns an error

mysql - 显示两个表中图形的组合结果

sql - 变量前的值

mysql - KEY 关键字是什么意思?

sql - PostgreSQL 查询在生产中不使用索引

c++ - 返回 vector 最高值的前 5 个索引的函数

php - 在 Laravel 中从 AS 中选择并加入

java - android editText文本在mysql数据库中显示为0?

sql - 使用映射表动态更改列名