为什么仅键查询是免费的?

2024-01-05

根据定价文档here https://developers.google.com/appengine/pricing, a keys-only查询是免费的。所以看来你可以通过执行以下操作(伪代码)来保存读取:

qo = ndb.QueryOptions(keys_only = True)
qry = ModelName.query().filter("name" = "Bob")
keys = qry.fetch(20, options = qo) #keys-only fetch

然后我就可以获得我的实体,每个实体需要 1 次读取:

entities = ndb.get_multi(keys)

为什么这被认为比获取实体(即仅进行键获取)更好?

另外,查询费用从哪里来?当。。。的时候fetch执行或当query对象被创建?


这并不被认为是“更好”,您只是为每个查询节省 1 个额外的读取成本。这是以额外的 RPC 请求和可计费实例时间为代价的。

当您执行普通查询(即非仅键查询)时,您将返回您正在查找的对象。运行查询的 RPC 请求也将开始获取查询匹配的每个对象,因此您可以更快地获得所有结果。根据查询的结果大小,可以在单个 RPC 请求中全部获取(您可以调整batch_size调整查询所采用的 RPC 总量)。

查询的工作方式是通过单个 RPC 请求扫描索引以查找与查询匹配的所有键,如果它是仅键查询,则它仅返回结果列表。如果是普通查询,它将开始抓取您想要的对象,并执行额外的 RPC 请求以根据需要获取所有对象。

执行查询时会产生费用,因此在您的示例中,当fetch叫做。您只需预先构建查询及其过滤器。

不过,按照自己的方式进行操作有一个优点:始终可以假设获取的对象是一致的。也就是说,通过查询,不能保证您的结果与可能刚刚发生的任何更新“一致”。这两种方法都会受到最终一致性的影响,因为除非您执行祖先查询,否则与您的查询匹配的对象可能不会全部从索引中一致地读取,但是您的方法可以保证您使用其键获取的对象确实是最新的-最新版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么仅键查询是免费的? 的相关文章

  • Google App Engine 数据存储区中实体组的吞吐量限制究竟是多少?

    该文档描述了数据存储中实体组的吞吐量限制 但对于限制的具体内容含糊其辞 我的困惑有两部分 1 限制什么 具体来说是 写入次数 写入数据存储的事务数量 无论是读取还是写入数据存储 事务数量如何 2 限制的类型是什么 具体来说是 人为强制执行每
  • Tipfy:如何在模板中显示blob?

    鉴于在 gae 上使用tipfy http www tipfy org python 以下模型 greeting avatar db Blob avatar 显示 blob 此处为图像 的模板标签是什么 在这种情况下 斑点是一个图像 这很棒
  • App Engine 实体到字典

    将 google app engine 实体 在 python 中 复制到字典对象的好方法是什么 我正在使用 db Expando 对象 所有属性均为扩展属性 Thanks 有一个名为foo尝试 foo dict
  • 我可以访问其他 Google App Engine 应用程序的数据存储区实体吗

    众所周知 在Google App引擎中 对于每个注册的电子邮件帐户 我们可以进行10个申请 现在 我需要在应用程序之间共享实体 这可能吗 如果有 是如何实施的 不 这是不可能的 然而 作为尼克 约翰逊 https stackoverflow
  • 使用 AngularJS 多部分表单数据将文件上传到 Google Cloud Storage

    我正在尝试使用 AngularJS 中指定的多部分方法将图像文件上传到 Google Cloud Storagehttps cloud google com storage docs json api v1 how tos upload m
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • 如何删除 GAE 搜索 API 中的搜索索引

    我使用 Google App Engine 搜索 API 我不知道下图中的功能名称是什么 我想删除 客户索引 和 客户 也许正确的问题是 如何删除搜索索引 在生产中 您可以删除索引中的文档 但索引仍然可见 https developers
  • 适用于 python2.7 谷歌应用引擎的云任务 API

    我在 Google App Engine Python 2 7 下创建了一个项目 我使用创建了一些任务queue yaml并与部署glcoud命令 当我转到 任务队列 部分下的 Google App Engine 控制台时 它会重定向到 云
  • Pinterest 拒绝来自 Google App Engine 的访问 (403)

    使用 oauth accessToken 我可以通过以下方式检索用户的信息 https api pinterest com v1 me fields first name 2Cid 2Clast name 2Curl 2Cusername
  • Google App Engine 中的图像上传

    我正在开发一个网站 用户可以上传与某个位置相关的帖子 然后他们可以添加两到三张照片 我了解如何使用数据存储区或 Blobstore 进行基本上传 但我想将这些照片链接到帖子和用户 然后能够在连接到帖子和用户的所有页面中显示它们 这是一般的想
  • 从 iOS 设备向 Google App Engine 进行身份验证

    我正在开发一个 iPhone 应用程序 它使用 Google 应用程序引擎来托管后端 我需要通过 Google 进行身份验证 但我似乎无法找到从我的应用程序中执行此操作的方法 看来我要做一个UIWebView让用户登录到我从 Google
  • Google App Engine CORS“解析 ./app.yaml 时出错:未知的 url 处理程序类型”

    我正在尝试将 CORS 应用到我的一个应用程序引擎 但遇到错误 我尝试查看其他答案 间距 的建议 但仍然错误 app yaml runtime nodejs10 env variables NODE ENV production CLOUD
  • 默认 GCS 存储桶名称

    根据https cloud google com appengine docs python googlecloudstorageclient activate https cloud google com appengine docs p
  • gcloud app deploy:此部署有太多文件

    当我尝试通过 gcloud 部署我的 GAE 应用程序时 出现以下错误 Updating service default failed ERROR gcloud app deploy Error Response 400 This depl
  • 部署到 AppEngine 时未调用 Ktor 应用程序的 Main 方法

    Issue Ktor 应用程序的main部署到 App Engine 时不会调用方法 在应用程序的主要方法中 逻辑是根据 API 请求检索内容Timer并将该信息保存到客户端使用的 Firestore 数据库中 目前 此逻辑在部署在Jar到
  • 突然出现大量实例

    我们有一个使用实例类型 F1 运行的应用程序 它现在运行良好一个多月了 空闲实例和延迟设置为全自动 它从未使用超过一个实例 今天 在没有任何更改或部署的情况下 我们突然增加了 73 个实例 每个实例的请求很少 例如 1 到 20 个 自然
  • 达到 Google App Engine 的文件和 blob 最大数量

    当尝试部署我的应用程序时 appcfg py update oauth2 我越来越 PM Rolling back the update Error 400 begin server output Max number of files a
  • Appengine - 隐藏文件夹的部署

    为了验证 SSL 证书 我需要将包含一些文件的隐藏文件夹 well known 上传到我的应用程序 我正在使用 eclipse 部署 java 应用程序 但 appengine 上的应用程序未收到这些文件 我猜他们被过滤掉了 我尝试将隐藏文
  • 在 PHP 中使用 file_get_contents 进行 PUT 请求的错误请求

    这个 api 调用使用 Postman REST 客户端 可以正常工作 但是当我的 GAE 应用程序中的服务器上发出请求时 我当前收到以下错误 HTTP 请求失败 在 C Projects app file php 第 26 行 打开流失败
  • 不断收到错误消息,表示 localhost 的 Server App Engine Standard 无法启动

    当尝试在 Eclipse 中启动 Google 应用程序引擎项目时 我不断收到错误消息 指出本地主机上的服务器应用程序引擎标准无法启动 错误日志如下 以前有人遇到过这个问题吗 问题的原因是什么 WARNING An illegal refl

随机推荐

  • Vuetify 多个 v-select 所需规则不起作用

    重现步骤 如果它的多个选择所需的规则不起作用 如果它不是多个也可以 预期行为 规则也适用于多重选择 实际行为 如果是多重选择 则规则不起作用 复制代码 div div
  • Json.NET - 控制类对象属性反序列化

    我有一个模特班Link它是用 JSON Net 反序列化的 public class Link JsonConstructor internal Link int id Id id public int Id get internal se
  • 迭代 std::set/std::map 的时间复杂度是多少?

    迭代一次的时间复杂度是多少std set std multiset std map std multimap 我相信它与集合 地图的大小是线性的 但不太确定 语言标准中有规定吗 在C 11工作草案中 可以找到答案 迭代器 要求 一般 p8
  • Visual Studio 2017 扩展开发

    您好 我想将我的扩展升级到 Visual Studio 2017 但我得到了Microsoft VisualStudio Shell RegistrationAttribute错误 但我已经添加了此引用 我在编译时收到此错误 是否有任何参考
  • JNI:拦截本机方法输出

    目前我正在开发一个项目 我需要拦截java本机方法调用的结果以进行进一步分析 有多种方法可以实现这一点 但我选择的方法是 在本机绑定时 将 java 本机方法的地址重新绑定到我自己的包装函数的地址 该函数将自行调用初始本机函数 然后返回其结
  • 将ListView的文本设置在中心 - android

    我尝试在中设置 ListView 的文本center的布局 我使用 LinearLayout 并设置重力 中心 但它总是显示在left 这是布局
  • GKE主节点

    在GKE中 当我们创建节点时 会有一个master节点 同时会创建很多worker节点 我怀疑主节点是我们创建的 提到的副本 还是GKE单独创建的主节点 gke 集群形成的拓扑结构 例如网状 星形 是什么 在 GKE 中 如果您创建一个标准
  • 将 freetype 位图复制到 opengl 纹理时出现问题

    我正在尝试生成字符的所有位图 to 并将它们添加到一个长纹理中 我打算将它们放置在固定宽度的纹理中 但现在我只想确保这个概念可行 But I am having problems Instead of getting the expecte
  • 在移动 Safari 中按 Tab 键浏览输入字段会使浏览器跳转

    有没有办法既能专注于球场 又不会出现这种不和谐的动画 当键盘可见时 这种行为尤其糟糕 Demo http plnkr co edit 9OydOFO0KUeKuaH8u70A p info http plnkr co edit 9OydOF
  • 设置graphql的最大文件上传大小(golang)

    我用 golang 编写了一个服务器 可以使用多部分形式将文件上传到该服务器 我想扩大最大上传大小 在我正在使用的实现的文档站点上 我发现了以下内容 上传最大尺寸 此选项指定用于将请求正文解析为 multipart form data 的最
  • 在显式结构中相互覆盖多个 CLR 引用字段?

    Edit 我很清楚这对于值类型非常有效 我的具体问题是关于将其用于引用类型 Edit2 我还知道您不能在结构中覆盖引用类型和值类型 这仅适用于相互覆盖多个引用类型字段的情况 我一直在修改 NET C 中的结构 我刚刚发现你可以这样做 usi
  • 确定代码圈复杂度的最佳工具[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • DataContractSerialiser 和 Serialized 的问题

    我有一些来自 Net 2 0 程序集的类 这些类被标记为可序列化 在我的项目中 我在我的 Classes 中使用这些类 它们标记有 DataContract IsReference true 和 DataMember 现在我遇到了问题 Da
  • 因为文档的框架是沙盒的并且未设置“允许脚本”权限

    我编写了一个程序 生成一个带有以下标头的 html 文件 但我没有iframe根本没有 更不用说在沙箱里了 当我在浏览器 托管在 Jenkins 服务器上 中打开页面时 我看不到 css 这些是错误 安全策略 我看过一些关于堆栈溢出的帖子
  • manifestPlaceholders 值不是字符串

    在我的 AndroidManifest xml 文件中 我有以下应动态填充的元数据标记
  • Redux Provider 不传递 Props/State

    我使用 create react app 创建了一个 React 应用程序 并向其中添加了 Redux 添加后
  • 为什么 wget 忽略 URL 中的查询字符串?

    我想使用wget下载以下18个HTML文件 http www ted com talks quick list sort date order desc page 18 http www ted com talks quick list s
  • StatsModels的predict函数如何与scikit-learn的roc_auc_score交互?

    我正在尝试理解predictPython statsmodels 中用于 Logit 模型的函数 它的文档是here https www statsmodels org stable generated statsmodels discre
  • SPI 电子墨水显示屏与 PIC 18F46K22 连接时出现问题

    我正在使用一个图18F46K22 https ww1 microchip com downloads en DeviceDoc 40001412G pdf在 SPI 主模式下与Waveshare 1 54 电子纸模组 https www w
  • 为什么仅键查询是免费的?

    根据定价文档here https developers google com appengine pricing a keys only查询是免费的 所以看来你可以通过执行以下操作 伪代码 来保存读取 qo ndb QueryOptions