java - 如何删除内置数据存储索引

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

默认情况下,应用引擎为每个字段定义一个内置索引。我没有创造它们,我也不想要它们。

我的实际实体只消耗了 159MB,但索引额外消耗了 680MB。我只会对这些实体进行键查询,所以我根本不需要任何索引。我怎样才能删除这些?

编辑:vacuum_indexes 的输出:

Found 0 unused indexes on the server.

Details:
No indexes were deleted.

vacuum_indexes completed successfully.

最佳答案

您不能删除内置索引。它们是内置的 :)

您可以做的是减少应用模型使用的索引数量。默认情况下,每个属性都在 AppEngine 中编制索引。我认为您是认真的。

要使属性未索引,请将参数添加到 de 属性声明中,如下所示:

class MyModel(db.Model):
    FirstName = db.StringProperty(Indexed=False)
    LastName = db.StringProperty(Indexed=False)
    ...

这样,appengine 将停止为该特定属性使用/创建索引。下次运行 SDK 控制台时,indexes.yaml 文件将自动更新。

您需要做的最后一件事是执行 appcfg.py vacuum_indexes myapp/。阅读有关 Appengine SDK docummentation 上最后一个命令的更多信息.

关于java - 如何删除内置数据存储索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11198968/

相关文章:

java - 将关键监听器添加到 JtextArea

mysql - Google Cloud SQL 连接/权限失败

java - 如何使用java从appengine数据存储中获取更新的对象集合?

java - 如何使用 Java 确定 Google AppEngine 数据存储区中给定键的对象是否存在?

java - goto _L1 的含义

java - Android String Edit和Array的值定位

java - NoClassDefFounderror 安卓

node.js - node.js App Engine 中的 cron 支持

python - 从 python 压缩(最小化)HTML

google-app-engine - Google App Engine 数据存储区的 ListProperty 的最大大小/限制是多少?