DocumentDB,为JSON文档使用小字段名称以最小化长度

时间:2016-05-11 08:26:48

标签: json azure azure-cosmosdb

在DocumentDB中,我们仅限于512KB JSON文档。

查看答案here,要估算发送文档的大小,建议使用以下方法JsonConvert.SerializeObjectEncoding.UTF8.GetBytes(s)。即使使用.NET SDK也没有压缩的概念。

如果您使用的是自定义对象数组,则可以重复使用字段名称。

我的问题是:我是否应该尝试使用JSON字段的短名称来减小可读性的大小?您是否建议使用JSON.NET提供的[JsonProperty]属性覆盖序列化属性名称?

1 个答案:

答案 0 :(得分:2)

以下是所有评论的答案:

@DavidMakogon“这真的取决于你 - 压缩/缩小JSON的方法很多(存在多个这样做的库),包括你建议使用更短的属性名称。”

我同意大卫的观点。我想补充一点,缩小字段名称会对系统的可读性/可调试性产生负面影响。

另一方面,我发现任何使你接近512K的数据建模都可能过度非规范化。至关重要的是,您永远不会决定数组模型或子对象可以无限增长的数据模型。如果您正在考虑强制限制数组字段或子对象中的元素数量并且没有自然限制(汽车只有4个轮胎),那就是警告标志。

在评论中,您指出阵列将无限增长。所以,我的建议是改变你的数据模型,这样你的数组的每个元素都是一个单独的文档。你必须做两次往返才能得到父母和孩子,但这就是SQL数据库中的连接会自动执行,这不是执行问题的效率,而且只是对你的程序的一点点增加,我怀疑不到你说你在评论中实现的分块算法。