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

MySQL在同一个表中存储不同的嵌套集,mysql,data-structures,dataset,nested-sets,r-tree,Mysql,Data Structures,Dataset,Nested Sets,R Tree,我有一个存储嵌套集的表。它存储由collectionid区分的不同嵌套集(是的,我在这里混合了术语,实际上应该是nestedsetid)。看起来有点像这样: id | orgid | leftedge | rightedge | level | collectionid 1 | 123 | 1 | 6 | 1 | 1 2 | 111 | 2 | 3 | 2 | 1 3 | 23 | 4

我有一个存储嵌套集的表。它存储由collectionid区分的不同嵌套集(是的,我在这里混合了术语,实际上应该是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
最初我想利用R树索引,但是我看到的代码:
LineString(Point(-1,leftedge),Point(1,rightedge))
不太有效,因为它没有考虑collectionid,而这个id:1和id:6最终是相同的


有没有一种方法可以将R树索引与当前设置一起使用。。。当然,在同一个表中可以有不同的嵌套集?我的主要目标是能够使用这些函数。使用MySQL 5.1处理一维数据(这些是1d区间,对吗?)存在比r树更好的索引结构。这些都是为2-10维的动态数据设计的(在更高的维上,性能不太好,因为分割策略和距离函数不再有效)

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

因此,我只需要索引
leftEdge
rightEdge
以及
=
函数。他们很快!对于collectionid列,位图索引应该很好