考虑R树的性能,其中覆盖(coverage)和重叠(overlap)两个概念很重要,因为R树查询是根据给定区域与当前MBR是否有交叉来判断, 因此覆盖和重叠都应当尽量小
覆盖小即MBR要小,最好刚好包围其中的数据点 (对于叶节点)或子MBR (对于非叶节点)
重叠小即MBR之间最好不要有交叉,这样可以增大空间利用率,减少查询冲突
对于R树,当查询区域W如下时比较不利:
因此R+树是通过分裂矩形来减少彼此间的重叠
对于上图情况将G进行拆分:
这样对于原先的查询区域W,可以直接定位到P,进而到H
R+树对于点查询的性能较好,但是由于一个特定的对象可能包含于多个结点中 (例如上图的G),因此需要更多空间,增加了树的高度,对于区域查询效果较差
同时更新树的复杂度过高,因为要始终保持不重叠的状态,可能需要不断向上进行调整