你们有没有使用NoSQL(非关系型)数据库存储空间数据的经验?是否有任何潜在的好处(速度,空间......)使用这些数据库来保存桌面应用程序的数据(与使用SpatiaLite或PostGIS相比)?
我已经看过关于将MongoDB用于空间数据的帖子,但我对一些性能比较感兴趣.
像Neo4j这样的图形数据库非常适合,特别是因为你可以动态地添加不同的索引方案.您可以对基础数据执行的典型操作当然是1D索引(例如Timline或B-Trees)或者像Hilbert Curves等更有趣的东西,请参阅Nick的博客.此外,对于一些现场演示,请在此处查看AWE开源GIS桌面工具,底层索引图在07:00左右可见.
Couchdb还具有简单的空间扩展
http://vmx.cx/cgi-bin/blog/index.cgi/category/CouchDB
目前,MongoDB使用B树进行地理分割,这将比PostGIS的R树慢(我不能给出确切的数字,我担心,但是有很多关于这些差异的理论文献).但是,在这些幻灯片中,http://www.slideshare.net/nknize/rtree-spatial-indexing-with-mongodb-mongodc作者讨论了向MongoDB添加R-tree和在地理密钥上进行分片.您谈论桌面使用,因此地理分析可能不会引起关注,因为在大量数据集中会更多地感受到分片的好处.最终,它可能更多地取决于您想要对空间数据做什么.Postgis具有更多的功能和支持拓扑,栅格,3D,坐标系之间的转换,所以如果这是你正在寻找的,PostGIS仍然是最好的选择.如果您有兴趣存储数十亿/数万亿个空间对象,并且只是根据某些标准运行基本查找此点附近/内部的所有点,那么MongoDB可能是一个非常好的选择.