我需要在單個記錄中的數據庫中存儲大量地理座標。這是不可能的存儲地理座標在SQL數據庫中,以便在此刻我這樣做:WP7 - 將地理座標存儲在數據庫中
geocoordinates-->string-->bytes-->database
在數據庫中對字符串的限制是8000個字節,因此數據的這個量必須存儲在字節格式(數據庫認爲它是一個圖像,所以沒有字節限制)。我已經將地理座標截斷爲6d.p(從15d.p開始下降),但這個過程非常緩慢。
有誰知道如何提高這項任務的效率?
謝謝!
我需要在單個記錄中的數據庫中存儲大量地理座標。這是不可能的存儲地理座標在SQL數據庫中,以便在此刻我這樣做:WP7 - 將地理座標存儲在數據庫中
geocoordinates-->string-->bytes-->database
在數據庫中對字符串的限制是8000個字節,因此數據的這個量必須存儲在字節格式(數據庫認爲它是一個圖像,所以沒有字節限制)。我已經將地理座標截斷爲6d.p(從15d.p開始下降),但這個過程非常緩慢。
有誰知道如何提高這項任務的效率?
謝謝!
爲什麼不重新設計您的數據庫,並將這些點存儲爲一對雙精度來表示lat/long - 如果需要,這些都可以引用「父」行。
我建議您將地理位置數據存儲到經緯度對的新表格中,並將其與當前表格中的行/記錄相關聯。
我不知道你對這些數據有什麼計劃,但這對我來說似乎是合乎邏輯的解決方案。
Postgres的確有點和其他幾何圖元直接支持:http://www.postgresql.org/docs/9.1/interactive/datatype-geometric.html
而且,它具有< - >距離比較運營商,你可能會發現有用http://www.postgresql.org/docs/9.1/interactive/functions-geometry.html
也可以優化索引近鄰搜索,你可以讀到這裏:http://www.postgresql.org/docs/9.1/interactive/indexes-types.html
最後,這裏有一個例子,從上面的鏈接採取:
SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
有專門的GIS數據庫,你可能也想看看。一個建立在Postgres之上的是PostGIS:http://postgis.refractions.net/
感謝您的答案,但我不想替換我的整個數據庫 - 我不介意做一些更改。 – Cameron
這很公平:) – River