web-dev-qa-db-ja.com

Rツリーとクアッドツリーの比較

地理空間データについて、Rツリーとクアッドツリーを比較したいと思います。そこに文献がありますが、私は本当の基本的な比較をカバーする文書を見つけるのに苦労しています。それで私はこの質問をすることにしました。

私の意見では、Rツリーにはバランスが取れているという利点があり、ツリーには空の葉がありません。欠点として、挿入や削除などの基本的な操作により、インデックス全体が再構築される可能性があります。

四分木は反対で、バランスが取れておらず、葉が空ですが、再構築する必要はありません。

そのため、R-Treeは必要なメモリが少なくて済み、高さが最小であるため検索が高速になります。更新操作が多い場合はクアッドツリーの方が適していますが、結果のツリーが不均衡になる可能性があります。

これらの点はあなたの意見では正しいですか?このトピックをカバーする良いドキュメントはありますか?

Auf Wiedersehen、Andre

20
Andre

「インデックス全体の再構築」。いいえ。Rツリーの再構築は、「全体」のインデックスではなく、単一のパスに制限されています。実際には、Bツリーと同様に機能します。

両方を実装し、いくつかのベンチマークを自分で実行して、それらがどのように機能するかを実際に知ることを検討してください。理論だけを使うのではありません。

変化の頻度が高い一様分布のデータでは、通常、四分木がより適切に機能します。ディスク上では、Rツリーには明らかな利点があります。

7
Anony-Mousse

QuadTreesとRTreesをかなりよく比較した論文は次のとおりです。

Oracle SpatialのQuadtreeおよびR-treeインデックス:GISデータを使用した比較

いくつかの違い:

  • 四分木は、パフォーマンスを最適化するために適切なタイリングレベルを選択して微調整する必要があります。 R-Treeには特別な調整は必要ありません。
  • Quadtreeは、既存のBツリーの上に実装できます。 Rツリー-できません
  • クアッドツリーインデックスは、Rツリーよりも高速に作成されます。
  • Rツリーは、最近傍クエリのQuadtreeよりもはるかに高速です。
  • Rツリーは、「内部」、「含む」、「カバー」などのウィンドウクエリに対してQuadtreeよりも大幅に高速です。
29
Sergey Zyuzin