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

DocumentDB, use small field names for JSON documents to minimize length

在 DocumentDB 中,我们限制为 512KB JSON 文档。

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

如果您使用自定义对象数组,字段名称可能会重复很多。

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

这是所有评论的答案:

@DavidMakogon "It's really up to you - lots of ways to compress/minify JSON (several libraries exist which do this), including your suggestion of using shorter property names."

我同意大卫的观点。我要补充一点,缩小字段名称会对系统的 readability/debugability 产生负面影响。

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

在评论中,您指出数组将无限增长。因此,我的建议是更改您的数据模型,以便数组的每个元素都是一个单独的文档。您必须进行两次往返才能获得父项和子项,但这是 SQL 数据库中的连接自动执行的操作,因此这不是执行效率问题,而且对您的程序来说只是一个小的增加,我怀疑你在评论中实现的分块算法比你说的要少。