【问题标题】:Updating an objectify entity without changing indexed properties在不更改索引属性的情况下更新对象化实体
【发布时间】:2017-05-29 12:02:05
【问题描述】:

假设我有一个包含 1 个未索引字段和 5 个索引字段的对象化实体。如果我仅通过修改未索引的属性来更新实体,是否也会导致重写五个索引字段的索引?基本上我担心这里的写入成本。

【问题讨论】:

    标签: google-app-engine google-cloud-datastore objectify


    【解决方案1】:

    Google 对每个实体的写入收费,与索引数量无关。

    https://cloud.google.com/appengine/pricing#costs-for-datastore-calls

    【讨论】:

    • 我对此的解释是这里提到的成本是每个写入请求,尽管我同意更合理的解释是每个实体写入。我的疑问出现了,因为正如cloud.google.com/appengine/docs/standard/python/datastore/… 中所解释的那样,单个实体写入实际上会导致数十个写入请求。
    • 该文档似乎已过时;这就是它过去的工作方式。无论好坏,Google 现在都按实体写入收费。
    【解决方案2】:

    是的,实体的每次更新都会导致所有索引属性的更新。换句话说,无论是只更新一个属性还是全部更新,写入成本都是相同的。

    这并不特定于 Objectify - 它是 Datastore 的工作方式。

    【讨论】:

    • 这在价格变化之前是不正确的,现在肯定不是。当前定价是每个实体的统一费率,与索引数量无关。
    • 什么不正确???您的回答与我的完全相同 - 写入成本不取决于索引属性的数量,即无论更新多少属性,写入成本都是相同的。
    • 我非常怀疑它会独立于索引属性的数量 - 为什么 Google 会继续解释写入成本,就像这里 cloud.google.com/appengine/docs/standard/python/datastore/… 一样。开发商有什么动机不让房产不被索引?
    • 1.价格最近发生了变化。您链接到的分页文档现已过时。 2. 定价是按存储的数据计算的。您拥有的索引属性越多,数据的总大小就越大。您可以查看云控制台中 Datastore 下的 Dashboard,您会发现索引占用的空间通常是数据本身的数倍。
    • 抱歉,“实体的每次更新都会导致所有索引属性的更新”这句话令人困惑。在旧的计费模型中,GAE 只计算索引属性发生变化的写入操作;在新的计费模型中,仅计算整个实体写入。
    猜你喜欢
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2021-08-06
    • 2018-05-09
    • 2020-11-13
    • 1970-01-01
    相关资源
    最近更新 更多