GAE 文件说



我不明白 an inefficient way 到底是什么意思。它可以帮助我保存写操作吗?

最佳答案

不,它不能减少写操作。但是它可以节省 RPC。

想想发生了什么。当您调用 put() 时,RPC 发送数据并等待响应,该调用内部是对数据存储的写入。

如果单个 RPC 有 30 毫秒的开销,无论它在做什么(我为了论证而增加了这个数字)。并且写入需要额外的 20 毫秒。然后每个 put() 调用需要 30ms rpc 往返 + 20ms 实际写入 = 50ms。

如果您在循环中执行 100 次 put() 调用,则需要 5000 毫秒。

但是,如果您使用 put_multi() 或 db.put([list of entity]) 那么您将只有一个 RPC。这意味着单个 30 毫秒的 RPC 和 100 * 20 毫秒的写入。它出现在 2030 毫秒。好吧,数字不准确,具有 100 个实体的单个 RPC 将比只有一个实体花费的时间长一点。但是你明白了。

关于google-app-engine - NDB put_multi 可以帮助保存写操作吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23765239/

10-13 07:11