我正在設計一個需要在數據庫中保存幾何形狀的應用程序。我還沒有選擇數據庫管理系統。我需要數據庫中的空間索引嗎?
在我的應用程序中,所有數據庫查詢都將有一個邊界框作爲輸入,並且作爲輸出,我希望該數據庫中的所有形狀。我知道具有空間索引的數據庫用於這種應用程序。但在我的應用程序中,而不是是類型爲「給我附近x/y的對象」或其他更復雜的查詢,這些查詢在GIS應用程序中很有用。
我打算具有數據庫沒有空間索引和查詢,有看起來像:
SELECT * FROM shapes WHERE x < max_x AND x > min_x AND y < max_y AND y > min_y
而且在列x (double)
和y (double)
有指數。只要我能看到,我並不需要一個具有空間索引的數據庫,不管我的應用程序如何接近這種應用程序。
即使我想附近的查詢,那麼我可以創建一個足夠大的邊界框圍繞那個點。或者這會導致糟糕的表現?
我真的需要一個空間數據庫嗎?何時需要空間索引?
編輯: 搜索查詢,實際上是超過一個我在上面寫了先進的一點點,因爲我處理的幾何形狀我會輸入一個邊界框將返回多個形狀(有邊框),其在查詢中位於內部或與其干擾。但是我仍然認爲在閱讀完所有好的答案之後,我可以在沒有空間索引的情況下做到這一點。
什麼是使用postgis或spatiallite的「成本」?我不明白你爲什麼不想使用它們。 – TheSteve0 2010-04-01 06:41:14
@ TheSteve0:我還沒有決定我將使用哪些dbms。但是我想不限於具有空間索引的人。也許我會選擇分佈式NoSQL數據庫而不是RDBMS。 – Jonas 2010-04-01 09:02:12
那麼你的用例是什麼 - 如果你不介意共享 – TheSteve0 2010-04-01 19:26:07