2012-02-02 29 views
2

數據存儲查詢的速度有多快?我使用Google搜索,但沒有在文檔中找到數字。數據存儲查詢的速度有多快?

代碼拋出:

com.google.appengine.api.datastore.DatastoreFailureException: query has expired or is invalid. Please restart it with the last cursor to read more results. 

回答

6

這是30秒。

Google員工在錯誤跟蹤系統中給出了半官方回答here

2

查詢光標可能持續幾小時。如果您在第一次執行查詢後在短時間內持續出現此錯誤,則可能意味着您的遊標字符串不正確,或者您使用的遊標的查詢不正確。 (查詢必須與用於生成遊標的查詢相同)

如果更改爲查詢提供動力的組合索引的配置,則所有現有的遊標都將失效。 The docs表示對底層實現(由App Engine團隊)進行的更改也會使遊標失效。

+0

這是30秒後一致:)我只是想看到有關它的官方信息。但是,我發現(在發佈此問題後)在bug追蹤系統中是[此評論](https://code.google.com/p/googleappengine/issues/detail?id=4432)。 – expert 2012-02-02 09:14:39

+1

我想你可能會談論兩種不同的事物,它們都是令人困惑的,稱爲遊標。丹指的是可用於分頁UI的遊標。那些的確對他們的生命沒有任何限制 - 隨着密鑰被刪除或插入,他們的準確度也隨之降低。但是30秒超時更可能指的是將連續批量的單個查詢連接在一起的「內部遊標」。如果您使用的是Appstats,那麼RunQuery - Next - Next等。這就是問題4432中的註釋引用的內容。也許你正在做一些長期的背景工作? – 2012-02-03 03:12:10