雖然Google Cloud Client Library具有許多內置功能,但在查詢基於其ID的實體存在時,我還沒有找到任何可用的東西。據我所知,做一個關鍵的查詢要比實體查詢這樣的效率高得多。存在的GQL查詢:獲取與關鍵查詢與實體查詢
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)
如果我有單獨的種類和標識符該怎麼辦?使用get()方法更好還是構建關鍵字面量/使用參數綁定更好? – Kookz