Использование R-деревьев в SQL

TLDR: Каков наилучший способ хранения пространственных данных в базе данных SQL для использования в R-Trees?


Длинный вопрос:

Я пишу функцию, которая включает в себя пространственные данные. Цель состоит в том, чтобы хранить POI и иметь возможность быстро получать данные, выполнять кластеризацию и т. Д.

Насколько я понимаю, R*-деревья являются хорошим решением для такого рода задач. Я планирую использовать: https://github.com/davidmoten/rtree.

Кажется, что SQLite предлагает R-Trees, но я могу использовать только SQL. Каков наиболее эффективный способ хранения этих данных?

1 ответ

Решение

Получить базу данных, которая имеет R деревьев.

Например SQLite, PostgreSQL, Oracle, ...

Но имейте в виду, что производительность запросов этих баз данных, как правило, будет довольно плохой по сравнению с индексом в памяти, таким как ELKI. В частности, если вы хотите, чтобы ближайший сосед с расстоянием haversine, что мне больше всего нужно.

Часто их индекс R-дерева - отвратительный взлом. Кажется, они обычно создают таблицу для хранения страниц дерева, поэтому запрос означает многократный выбор строк из этой таблицы.

Другие вопросы по тегам