我有一个存储嵌套集的表。它存储不同的嵌套集合,通过一个集合来区分(是的,我在这里混合术语,真的应该是nestedsetid)。看上去有点像这样:
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
发布于 2012-08-18 07:20:31
对于一维数据(这些是一维间隔,对吗?)有比r-树更好的索引结构。这些是为2-10维中的动态数据设计的(在更高的维度上,性能不太好,因为拆分策略和距离函数不再工作得很好)。
实际上,对于您的用例,经典SQL应该工作得很好。数据库可以有效地利用数据库的索引。拥有良好的索引结构是一回事,但是您希望数据库尽可能好地利用它的索引。
因此,我只对leftEdge和rightEdge以及<, <=, >, >=函数进行索引。他们太快了!对于收藏品栏,位图索引应该是好的。
https://stackoverflow.com/questions/11973693
复制相似问题