2015-02-05 43 views
0

我遇到了一個場景,同時在應用引擎中運行查詢,這大大增加了我的成本。 我寫了下面的查詢來獲取本書的名字 -谷歌應用引擎 - 幫助查詢優化

Iterable<Entity> entities = 
       datastore.prepare(query).asIterable(DEFAULT_FETCH_OPTIONS); 

之後,我運行一個循環與用戶請求的名稱相匹配的名稱。這導致數據存儲中的整本書籍的數據讀取以及數據存儲中的書籍細節日益增加,因爲它正在讀取整個列表,所以它進一步影響了成本。 是否有替代方法僅爲用戶請求的書籍詳細信息提取數據,以便我不必讀取完整的數據存儲? SQL會幫助還是過濾?如果有人提供查詢,我將不勝感激。

回答

2

你有兩個選擇:

  1. 如果完全匹配的標題,使它成爲一個索引字段,並使用過濾器具有完全相同的標題只取回書籍。

  2. 如果你的標題中搜索過:

    一個。您可以使用Search API來索引所有標題,並使用它來查找用戶正在查找的書籍。

    b。不太理想但快速的解決方案是創建只讀取書名的projection query