我想使用 b-tree 作为索引,但我想不出 OR 查询的解决方案。
对于 OR 查询,我的意思是 select * from table where id between 1 and 5 OR id between 10 and 15;
如果我使用 id 作为 b-tree 中的键,那么如何在 b-tree 上进行上述查询?
通过b-tree搜索时,假设小于6和大于6的key在不同的子树上,而不是搜索路径经过包含小于6的key的子树时,id 1 到 5 之间的可以检索,但是 10 到 15 之间的 id 呢?
我是否必须使用 b+tree,当我找到指向 id 1 的键时,我只是一个接一个地扫描叶子节点,直到找到指向 id 15 的键?这种查询是不好的解决方案:select * from table where id between 1 and 5 OR id between 10000000 and 10000005???
或者有没有其他解决方案?
非常感谢!