首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL在同一个表中存储不同的嵌套集

问MySQL在同一个表中存储不同的嵌套集
EN

Stack Overflow用户
提问于 2012-08-15 17:00:07
回答 1查看 195关注 0票数 0

我有一个存储嵌套集的表。它存储不同的嵌套集合,通过一个集合来区分(是的,我在这里混合术语,真的应该是nestedsetid)。看上去有点像这样:

代码语言:javascript
复制
id | orgid | leftedge | rightedge | level | collectionid
1  | 123   |  1       |  6        |  1    |   1
2  | 111   |  2       |  3        |  2    |   1
3  |  23   |  4       |  5        |  2    |   1
4  |  67   |  1       |  2        |  1    |   2
5  | 123   |  3       |  4        |  1    |   2
6  | 600   |  1       |  6        |  1    |   3
7  |  11   |  2       |  5        |  2    |   3
8  | 111   |  3       |  4        |  3    |   3

最初,我想利用collectionid,但是我所看到的代码是这样的:LineString(Point(-1, leftedge), Point(1, rightedge))不能很好地工作,因为它没有考虑到id:1和id:6最终都是一样的。

有什么方法可以用R-树索引和我现在的设置.当然,您可以在同一个表中有不同的嵌套集?我的主要目标是能够使用MBRWithin和MBRContains函数。使用MySQL 5.1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-18 07:20:31

对于一维数据(这些是一维间隔,对吗?)有比r-树更好的索引结构。这些是为2-10维中的动态数据设计的(在更高的维度上,性能不太好,因为拆分策略和距离函数不再工作得很好)。

实际上,对于您的用例,经典SQL应该工作得很好。数据库可以有效地利用数据库的索引。拥有良好的索引结构是一回事,但是您希望数据库尽可能好地利用它的索引。

因此,我只对leftEdge和rightEdge以及<, <=, >, >=函数进行索引。他们太快了!对于收藏品栏,位图索引应该是好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11973693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档