Использование 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-дерева - отвратительный взлом. Кажется, они обычно создают таблицу для хранения страниц дерева, поэтому запрос означает многократный выбор строк из этой таблицы.