【问题标题】:Projection Queries in GAE/J with performance gainGAE/J 中具有性能提升的投影查询
【发布时间】:2015-04-21 14:26:24
【问题描述】:

Here 它说

投影查询允许您查询数据存储区 ... 延迟和成本比检索整个实体。

但是here 它说

[我猜是使用 JDO] 这并没有带来性能提升

那么,我们是否必须使用 Datastore 的低级 Java API 才能获得性能提升?

【问题讨论】:

  • 第二个链接说使用低级 API 或 JDO 不会带来性能提升“它仍然会导致从数据存储中获取和解码整个实体 - 所以如果目标是提高性能,没有收获”。
  • 但是第一个链接是官方的。投影查询可通过低级 API 降低成本和延迟。
  • 当然,他们还说 JDO 和 JPA 已经有“投影查询”......所以他们的信息像泥巴一样清晰。祝 Google 澄清一下

标签: java google-app-engine jdo datanucleus query-performance


【解决方案1】:

App Engine 以两种方式存储数据:索引属性存储在索引中,然后整个实体单独存储,以便使用get 轻松检索。因此,如果您需要访问未索引的属性,除了检索整个实体之外别无选择。

但是,如果您只需要几个索引字段,则投影查询将直接从索引数据中返回这些属性,而无需获取实体本身,这显然会带来显着的性能提升,因为完全消除了额外的步骤并且返回的数据更少。

【讨论】:

  • 那么我可以使用 JDO 来获得相同的性能吗?我的意思是如何检测我是否获得了性能或 JDO 获得了整个实体并过滤掉不需要的成员(即伪造它)?
猜你喜欢
  • 1970-01-01
  • 2020-06-04
  • 2021-08-14
  • 2014-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
相关资源
最近更新 更多