【问题标题】:GAE/P: Migrating to NDB efficientlyGAE/P:高效迁移到 NDB
【发布时间】:2015-06-17 20:22:24
【问题描述】:

我终于从db 升级到ndb(这比我预期的要头疼得多......)。

我使用了很多ReferenceProperty,并将它们转换为KeyProperty。现在,我在每个使用 ReferenceProperty 的地方都需要添加一个显式 get,因为它以前是自动为我完成的。

我的问题与我是否应该重组我的代码以提高效率有关。我有很多使用KeyProperty 的方法,我需要做一个明确的get()。我想知道是否应该更改这些方法,以便将实体传递给它们,而不是使用 KeyPropertyget()

ndb 的自动内存缓存是否足够好以至于我不需要重组?或者我应该重组我的代码以避免重复获取同一实体?

我们并没有在这里看到巨大的低效率。但是对于单个 HTTP GET/POST,我可能会获得相同的实体 3-5 次。

【问题讨论】:

    标签: python google-app-engine google-cloud-datastore app-engine-ndb


    【解决方案1】:

    在您的情况下,In-Context Cache 将接管并为您节省数据库调用:

    上下文缓存很快;这个缓存存在于内存中。当 NDB 函数写入数据存储时,它也会写入上下文缓存。当 NDB 函数读取实体时,它首先检查上下文缓存。如果在那里找到实体,则不会发生 Datastore 交互。

    每个请求都会获得一个新的上下文。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-24
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 2014-01-28
      • 2012-01-13
      相关资源
      最近更新 更多