2010-07-19 44 views

回答

0

我猜第一種形式是遠遠快,但它只是一個猜測。

2

通過給出一個具有多個實體和一個OR語句的示例,您將使問題變得複雜一點。 (主要問題是基於關鍵字的查詢與基於查詢的查詢。)數據存儲本身不支持聯合操作(「OR」)。所以在幕後你的第二個例子將會做4個查詢,每個ID一個。

查詢通常比關鍵字查找慢,所以4個查詢通常會比4個ID得到的要慢。慢慢或更快的速度取決於你的實體,但它幾乎總是非常顯着的差異。

但是,在這種情況下,您的查詢只使用id字段。應用程序引擎中的Datanucleus JDO層足夠智能,可以識別僅使用ID的查詢,並將嘗試僅執行一次鍵操作。 (見here)這應該是最快的選擇。

UPDATE:顯然查詢和密鑰之間的差已經在最近的SDK釋放減少,如所討論的here.