Meteor和Mongo,减少使用的带宽?

时间:2016-09-06 15:55:38

标签: mongodb meteor

  1. MongoDB是一个面向文档的数据库。
  2. Meteor pub / sub / call通过JSON传送数据。
  3. JSON使用键值对样式形式。
  4. 这意味着每次发送数据时,'键'与值一起发送。

    length(json sent) = length(attributes values) * length(attributes names) * Xdoc

  5. 让我们简化并说平均键和值具有相同的长度。

    length(json sent) = 2 x length(attributes values) * Xdoc
    

    这意味着一半的数据(我正在跳过= /,/ {,})是多余的。

    基于文档不像table-sql,同一个集合的属性可能完全不同。

    但尝试对此进行优化真的没有意义吗?

    例如,构建一个关键字典,使用二进制或优化大小作为谷歌协议缓冲区吗?

    为什么这个问题?因为我有10MB的客户需要的集合,而且它变慢了,如果我当然会用分页和过滤密钥进行优化,但我想知道:)

    - 流星/ mongo noob。

    PS:我不是在寻找一个演练,而是为了解释为什么不能对发送的json数据长度进行优化。

1 个答案:

答案 0 :(得分:0)

答案是传输的实际字节数很少是个问题。除非您的网络有一些限制,否则10M不是很多数据。

在一个或几个帧中传输10M(如请求/响应往返)是没有问题的。但是如果你在每帧1k的10000帧中进行它将需要很多ms。

然后这些数据被存储(扩展)到客户端,最常见的是数次带来额外的开销,占用大量内存并使应用程序变慢。

因此,除非你有一些有趣的角落案例,否则继续保持请求/响应的数量并限制客户端代码中数据的复制量将比发送10M字节更大的影响通过电线。