NDB与DB(在High Replication数据存储区上)的速度比较是什么?

wTy*_*ers 14 google-app-engine app-engine-ndb google-cloud-datastore

摘自Python NDB概述:

当应用程序读取实体时,该实体会自动缓存; 这为经常读取的实体提供了快速(且便宜)的读取.

...

写入数据的NDB函数(例如put())在高速缓存失效后返回; Apply阶段异步发生.

在Youtube上观看,Google I/O 2011:更多9s请:在高复制数据存储的封面下,在13:11-ish,平均延迟是:

主从:

  • 阅读:15ms
  • 写:20ms

高复制:

  • 阅读:15ms
  • 写:45ms

从应用程序的角度来看,NDB对这些速度的影响有多大?

编辑:特别好奇时序统计(以毫秒为单位).

额外信用:我也听过尼克约翰逊提到每个约160毫秒的询问(2009年)[link]NDB是否提供查询的任何速度优势?

Gui*_*sum 18

您必须自己进行基准测试 - 时间取决于许多因素,例如实体大小和复杂性:更多属性或重复属性中的更多项目 - >更复杂.

你引用的数字真的很旧,可能不再反映现实; 大多数用户的经验是,HRD平均不比M/S慢(部分原因是M/S具有更高的可变性).

这里有一些NDB基准测试:http://code.google.com/p/appengine-ndb-experiment/issues/detail? id = 118 - 但它没有将数字与旧数据库进行比较.

您可以使用Appstats在真实应用中快速完成一些操作时间.

  • 很高兴知道我的第一个Stack Overflow帖子!鉴于你对NDB的深入了解以及你使用你的X-Ray Python视觉分析统计数据的能力,我暗中希望_you_将成为响应者之一 - 这个问题的致命组合._谢谢你突出一些复杂点,这个链接非常有用. (4认同)

Alb*_*ert 10

从应用程序的角度来看,使用NDB可以显着加快数据存储区调用的速度.

READ:最佳情况,读取是从实例缓存或内存缓存.在大多数情况下,这比从数据存储区读取要快得多.

WRITE:NDB put/write方法在缓存失效后立即返回.这比正常写入更快.所以从你的应用程序的角度来看,它的速度要快得多.但是,实际写入是异步执行的.

NDB与DB(高复制):从应用程序的角度来看,NDB应该是一个明确的胜利.