2017-07-20 4 views
-2

TLDR:R-Treesで使用するSQLデータベースに空間データを格納する最適な方法は何ですか?SQLでRツリーを使用する


ロング質問:

私は、空間データを組み込んで機能を書いています。目標はPOIを保存し、データをすばやく検索したり、クラスタリングなどを実行することです。

私の理解は、この種のタスクにはR *ツリーが適しているということです。私は使用する予定です:https://github.com/davidmoten/rtree

SQLiteはR-Treesを提供しているようですが、SQLのみを使用できます。このデータを保存する最も効率的な方法は何でしょうか?

+0

"*ただしSQL *のみ使用できる"とはどういう意味ですか? –

+1

MySQLはr-treeインデックスを提供しています。 https://dev.mysql.com/doc/refman/5.7/en/creating-spatial-indexes.html しかし、基本的にSQLをクエリ言語として使用するすべてのデータベースは、SQLを使用していると見なされているようですなぜSQLiteがうまく動作しないのか分かりません。 –

+0

@AlexRはい、それは私が見つけられなかったものです。ありがとう! –

答えて

1

Rツリーを持つデータベースを取得します。例のSQLite、PostgreSQLの、オラクルについて

...

しかし、これらのデータベースのクエリのパフォーマンスは、通常、ELKIsなど、メモリ内のインデックスに比べてかなり悪いだろうということに注意してください。特に、あなたがhaversine distanceを持つ最近隣を望むなら、それは私が大部分が必要とするものです。

多くの場合、そのRツリーインデックスは醜いハックです。彼らは通常、ツリーのページを格納するテーブルを作成するように見えるので、クエリとはそのテーブルから行を繰り返し選択することを意味します。

関連する問題