Я разрабатываю приложение, которое должно сохранять геометрические фигуры в базе данных. Я еще не выбрал систему управления базами данных.
В моем приложении все запросы к базе данных будут иметь ограничивающий прямоугольник в качестве входных данных, а в качестве выходных данных мне нужны все фигуры в этой базе данных. Я знаю, что базы данных с пространственным индексом используются для такого рода приложений. Но в моем приложении , а не будут любые запросы типа "дай мне объекты рядом с х / у" или другие более сложные запросы, которые полезны в приложении ГИС.
Я планирую иметь базу данных без пространственного индекса и иметь запросы, похожие на:
SELECT * FROM shapes WHERE x < max_x AND x > min_x AND y < max_y AND y > min_y
И иметь индекс для столбцов x (double)
и y (double)
. Насколько я понимаю, мне действительно не нужна база данных с пространственным индексом, даже если мое приложение близко к этому виду приложений.
И даже если бы я хотел иметь соседние запросы, я мог бы создать достаточно большую ограничивающую рамку вокруг этой точки. Или это приведет к снижению производительности?
Действительно ли мне нужна пространственная база данных? А когда нужен пространственный индекс?
EDIT:
Поисковые запросы на самом деле будут немного более продвинутыми, чем тот, который я написал выше, так как я имею дело с геометрическими фигурами, я введу ограничивающий прямоугольник, который будет возвращать несколько фигур (с ограничивающим прямоугольником), которые находятся внутри или мешают прямоугольнику в запрос. Но я все еще думаю, что могу сделать это без пространственного индекса, после прочтения всех хороших ответов.