我很好奇 Kyle Banker 的 MongoDB In Action 中的这句话:
考虑您选择的键名的长度很重要,因为键名存储在文档本身中。这与 RDBMS 形成对比,在 RDBMS 中,列名始终与它们所引用的行分开。因此,在使用 BSON 时,如果您可以使用 dob 代替 date_of_birth 作为键名,则每个文档将节省 10 个字节。这听起来可能不多,但是一旦您拥有 10 亿个这样的文档,只需使用较短的键名,您就可以节省近 10 GB 的存储空间。这并不意味着您应该花费不合理的长度来确保小的键名;理智点。但是,如果您期望有大量数据,那么节省键名将节省空间。
我对在数据库服务器端没有优化的原因很感兴趣。包含集合中所有键名的内存查找表是否会带来太多的性能损失,不值得潜在的空间节省?