對GeoServer上的WFS的各類數據源查詢效率感興趣,作個測試。本次測試了Postgresql、geopackage、shp文件三種數據源的查詢效率,不管是本機仍是服務器環境,pg存儲查詢效率都比shp要好。sql
操做系統 本機=Windows 10 專業版 1903 服務器=Windows Server 2016服務器
CPU 本機=i7 9700 服務器=L5xxx網絡
內存 本機&服務器 = 32GBpost
硬盤 本機=512SSD 服務器=1TB機械測試
geoserver版本:2.16fetch
pg版本:10.xspa
網絡環境:公司局域網操作系統
代碼測試環境:Cesium 1.68 原生自帶的請求方法 Cesium.Resource.fetchJson()postgresql
測試環境:Microsoft Edge 84.0.488.1 Devserver
數據名 | 數據體積 | 數據量 | EPSG | 非OBJECTID屬性個數 |
---|---|---|---|---|
boundary_vill_sparse | 67.9MB | 31383 | 4490 | 12 |
village_mz_sparse | 17.0MB | 6246 | 4490 | 12 |
本文基於公司保密數據進行測試,就不提供數據了,感興趣的朋友能夠用全國縣級數據進行模擬。
數據預覽:
數據入庫要求:
數據名稱 | 數據源 | 體積 | 查詢用時(6次隨機) |
---|---|---|---|
boundary_vill_sparse | postgresql | 55.65MB | [73, 86, 65, 66, 64, 64] / 6 = 69.7ms |
boundary_vill_sparse | geopackage | 71.70MB | [580, 640, 635, 610, 603, 653] / 6 = 620.2ms |
boundary_vill_sparse | shapefiles | 67.9MB | [412, 344, 359, 396, 339, 369] / 6 = 369.8ms |
village_mz_sparse | postgresql | 13.21MB | [52, 68, 29, 26, 70, 60] / 6 = 50.8ms |
village_mz_sparse | geopackage | 16.82MB | [195, 243, 254, 232, 207, 168] / 6 = 216.5ms |
village_mz_sparse | shapefiles | 17.0MB | [124, 162, 154, 162, 161, 119] / 6 = 147ms |
對於shp文件,在geoserver上勾選「若缺乏空間索引,則構建空間索引」選項加速索引。
縱向對比,同一份文件,pg的WFS查詢效率遠高於shp文件。geopackage做爲sqlite的一種實現,適合用來作數據交換以替代shp文件的編輯功能,不適用於查詢。
橫向對比,數據量越大,pg的優點越明顯。數據量大的全省村落行政區數據,比數據量小的梅州局部數據有明顯優點(約3倍vs約6倍)。
除此以外,pg還有數據壓縮方面的優點,約能節約相對於shp文件20%~30%的文件體積。
對於geopackage,文件體積沒有太大變化,能夠犧牲稍微多出來的一點空間解決二維數據編輯交換的各類中文不兼容問題。spatiallite未測試。
數據名稱 | 數據源 | 查詢用時(6次隨機) |
---|---|---|
boundary_vill_sparse | postgresql | [419, 354, 411, 425, 360, 362] / 6 = 388.5ms |
boundary_vill_sparse | geopackage | [3.60, 3.37, 3.42, 3.31, 3.36, 3.17] / 6 = 3.37s |
boundary_vill_sparse | shapefiles | [1.94, 1.84, 1.87, 1.48, 1.93, 1.83] / 6 = 1.81s |
village_mz_sparse | postgresql | [320, 316, 314, 316, 316, 312] / 6 = 315.7ms |
village_mz_sparse | geopackage | [1.17, 1.01, 1.00, 1.01, 1.01, 1.01] / 6 = 1.04s |
village_mz_sparse | shapefiles | [656, 640, 636, 639, 637, 637] / 6 = 640.8ms |
在服務器環境shp文件發佈的WFS查詢時間極其不穩定,有時候會劇增到十幾秒,有的時候一秒多,有的時候幾秒鐘。估計是磁盤IO佔用。
總的來講,shp文件的查詢效率在數據量越大的時候,不管是服務器環境,仍是本地環境,都是不如pg的。
至於geopackage,這個僅適合作交換格式,以覆蓋shp文件中文不兼容的狀況。
版權全部。B站/小專欄/知乎/csdn/博客園 @秋意正寒