google-app-engine - 对于简单和复杂的查询,如何计算数据存储写入操作(写入总数)?

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

我正在使用数据存储开发应用引擎项目(创建我们的数据库),

根据此 link 中提供的信息列出了不同情况(插入、更新和删除)的读写操作总数,但我很困惑如何计算修改索引和复合索引的写操作。

我们有以下案例场景,我们必须计算写入操作的数量

1 >> Datastore 查询需要基于单个属性进行过滤没有复杂的查询[datastore-indexes.xml 文件中没有定义索引]

根据示例 “SELECT * FROM MESSAGE AS MESSAGE ORDER BY timestamp desc”

2>> 数据存储区查询需要基于单个属性进行过滤,没有复杂的查询[在 datastore-indexes.xml 文件中的一个属性上定义的索引] 按照示例 “SELECT * FROM MESSAGE AS MESSAGE ORDER BY timestamp desc”

3>> 数据存储查询需要根据复杂查询进行过滤[在datastore-indexes.xml 文件中为复杂查询定义的索引] 根据示例““SELECT * FROM MESSAGE AS MESSAGE WHERE req_id="xyz123"ORDER BY timestamp desc"

Note::for example purpose i have taken this statement “SELECT * FROM MESSAGE AS MESSAGE ORDER BY timestamp desc".This jpql query makes a get(1 read operation) http request in order to retrieve data from datastore.

问题

For above case scenario how New Entity Put write operation will be counted ?[ New Entity Put " 2 writes + 2 writes per indexed property value + 1 write per composite index value"]

提前致谢!!!

最佳答案

对于具有单值属性的实体,编写一个新的实体需要进行以下写入:

  • 1 个实体本身
  • EntitiesByKind 索引为 1
  • 每个索引属性 2
  • 每个复合索引1个

所以对于你的例子:

  1. 1 + 1 + 2*(索引属性的数量)
  2. 这实际上与#1 相同;无需在 datastore-indexes.xml 中定义单一属性索引,因为它们会自动包含在内。
  3. 1 + 1 + 2*(索引属性的数量)+ 1

这是 more information关于 Datastore 写入成本。

关于google-app-engine - 对于简单和复杂的查询,如何计算数据存储写入操作(写入总数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24524568/

相关文章:

google-app-engine - 从 Google AppEngine 数据存储区删除数据

java - Hibernate 可以用作 Google App Engine 中的 JPA 提供者吗

java - Servlet 过滤器不适用于 AppEngine 手动缩放

google-app-engine - 谷歌应用引擎: How do i configure it to send some resources as zipped to save bandwidth?

image - Google App Engine 上的用户个人资料图片组织

java - 在 yaml 中获取特定的 arraylist 元素以从数据存储中检索数据

java - Google-app-engine 数据存储多维数组

jquery - 在 jQuery 中引用 XML

python - 如何建立一对多模型?

python - 我应该等待 Google App Engine 请求中的每个 ndb.Model.put_async() 吗?