将地图存储在基于文档的数据库中(例如mongo db)

时间:2019-01-04 22:18:49

标签: java spring mongodb database-design nosql

我需要在数据库中存储巨大的地图,其中包含url作为键,并且每个信息都作为元数据。

数据存储在mongodb中,该文件由spring boot服务器管理(如果有的话)

此地图需要更新,这意味着将插入新的键并更新现有的键。我可以想到,有两种选择可以做到这一点。

选项1:将地图存储在此实体中:

@Document(collection = "cache.url")
public class CachedUrlMetaEntity {  
    @Id
    private String id;
    private Map<String, String> urlMetaMap;
}

通过这种方式,数据将易于访问,但是如果我需要对其进行修改,则使用较大的地图会比较棘手。

选项2:使用此实体:

@Document(collection = "cache.url")
public class CachedUrlMetaEntity {  
    @Id
    private String url;
    private String urlMetaData;
}

通过这种方式,每个网址都将其元数据存储为单独的文档,从而使数据更易于修改,访问速度也更慢。

尝试了由1万个条目组成的映射后,在这两种方法之间,我的本地计算机上看不到任何差异,只是第一种方法在更新映射时存在一些内存消耗峰值。

问题是,就基于文档的数据库中的最佳实践而言,哪个选项可以被认为是更好的选择。

0 个答案:

没有答案