2015-04-21 44 views
0

Here它說投影查詢,性能增益

投影查詢,可以查詢數據存儲...在較低 延遲和成本不是檢索整個實體。

here它說

[使用JDO,我想,]這個沒有給出性能增益

所以,做我們必須使用數據存儲的低級別的Java API來獲取性能增益?

+0

第二個鏈接指出,使用低級別的API或JDO並不會提高性能,「它仍然會導致從數據存儲庫中提取和解碼整個實體 - 所以如果目標是性能改進,就沒有收益」。 –

+0

但第一個鏈接是官方的。投影查詢允許低級API降低成本和延遲。 – lembas

+0

當然,他們也說JDO和JPA已經有了「投影查詢」......所以他們的信息就像泥巴一樣清晰。祝Google能夠澄清 –

回答

1

App Engine以兩種方式存儲數據:索引屬性存儲在索引中,然後整個實體單獨存儲,因此可以通過get輕鬆檢索。所以如果你需要訪問一個沒有索引的屬性,除了檢索整個實體外沒有別的選擇。

但是,如果您需要的只是一對索引字段,則投影查詢將直接從索引數據返回這些屬性,而無需獲取實體本身,這顯然會導致顯着的性能增益,因爲額外的步驟是完全的消除並返回更少的數據。

+0

因此,我可以使用JDO來獲得相同的性能嗎?我的意思是如何檢測我是否獲得了性能,或者JDO獲得了整個實體並篩選出不需要的成員(即假貨)? – lembas