1
從docs,我知道Query.run()
返回一個迭代和Query.fetch()
返回一個列表。該文檔說,fetch()
只是run()
上的包裝,通常不應使用,因爲它更佔用內存。但是從我的(有限)體驗他們做同樣的事情:他們讓你循環查詢的結果。爲什麼fetch()
存在?它的作用是什麼?它的效率低於run()
?在app引擎中,fetch()與run()不同?
從docs,我知道Query.run()
返回一個迭代和Query.fetch()
返回一個列表。該文檔說,fetch()
只是run()
上的包裝,通常不應使用,因爲它更佔用內存。但是從我的(有限)體驗他們做同樣的事情:他們讓你循環查詢的結果。爲什麼fetch()
存在?它的作用是什麼?它的效率低於run()
?在app引擎中,fetch()與run()不同?
run()返回一個iterable,根據需要發出異步調用,以便在遍歷項目時從數據存儲中提取數據。如果您不遍歷整個結果集,它可能不會返回結果集中的所有實體。
fetch()基本上調用run(),遍歷整個結果集並將所有結果放入列表中。
如果使用fetch(),您將返回列表,然後再次遍歷它。
如果您絕對必須將所有數據都列入列表並在列表中進行操作,則fetch()往往會有所幫助。