gpt4 book ai didi

google-app-engine - 我可以通过对索引执行 0 次写入操作将项目保存到 Datastore 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:39 26 4
gpt4 key购买 nike

持久化实体所需的数据存储写入操作数是1 + 索引数

如果我更新现有实体并且索引字段未更改怎么办。需要多少次写操作?是否可以仅使用 1 个写入操作来保存现有项目。如果索引不受影响?

最佳答案

简短的回答是否定的。如果你想按字段搜索,它需要被索引,你将不得不为每次写入付费。在每个实体写入时,都会写入整个实体,数据存储区不知道您是否更改了索引字段。

如果您担心成本,您可以创建未编入索引的字段。未索引字段不添加任何写操作。但是,您不能按未索引的字段进行搜索: http://code.google.com/appengine/docs/python/datastore/queries.html#Unindexed_Properties

你可以手动设置一个属性不被索引,写一个实体,然后再设置它被索引。这实际上是无用的,而且需要付出很多努力,而且可能不是您想要的。听起来您想使用旧索引,但这种技术会破坏索引,并且该特定实体不会被编入索引(也不会出现在搜索结果中),而其他同类则会。

如果您有一个字段,与实体的其余部分相比,您可能会写很多,考虑成本的做法可能是将该字段拆分成它自己的、未索引的实体,并将其键存储在原始实体中.不过,您每次都需要额外的数据库提取才能获取它。

编辑:这个原始答案不正确。我当时可能误读了这个问题。虽然您无法使用 1 次写入操作创建新实体,但如果您编写索引属性未更改的现有实体,则确实可以使用 1 次写入操作进行写入。

关于google-app-engine - 我可以通过对索引执行 0 次写入操作将项目保存到 Datastore 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9632384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com