【发布时间】:2017-03-17 09:03:39
【问题描述】:
虽然 Google Cloud 客户端库具有许多内置功能,但在根据 id 查询实体存在时,我没有找到任何可使用的东西。据我了解,进行关键查询比像这样的实体查询要高效得多。
SELECT __key__ FROM User WHERE __key__ = Key(User, 1)
如果可能在 Java 应用程序中,使用 get(Key key) 函数会更好。
Datastore datastore = DatastoreOptions.getDefaultInstance().getService();
KeyFactory keyFactory = datastore.newKeyFactory().setKind(User);
Key key = keyFactory.newKey(1);
Entity entity = datastore.get(key);
如果我有一个实例,其中我的实体也有祖先,那么在查询是否存在仅具有父 ID 的祖先时,哪一个更有效?
我假设实体查询(SELECT * From Parent WHERE __key__ = Key(Parent, 1))总是比键查询慢,但是与 get 相比呢?
如果祖先路径链接得更长,那会怎样? 然后,关键查询可能会变成以下内容:
SELECT __key__ FROM Grandchild WHERE __key__ = Key(Parent, 1, Child, 1, Grandchild, 1)
【问题讨论】:
标签: java google-cloud-datastore gql