2011-03-20 29 views
1

我有一個實體對象(種類)用於存儲來自用戶「廣告」的所有信息。它包括照片的鑰匙,聯繫信息等。 但我只需要從這些查詢對象的幾件事情。Google App Engine Objectify查詢大對象VS分離對象(頭部和身體)

使用帶有Objectify的Google App Engine(Java)。

我的問題是這樣的。 讓實體對象僅用於查詢(「標題」 - 標題,價格,城市)和另一個實體對象是否適用於所有額外的未指定索引的細節更強大嗎? 或者可以將所有這些放在一個實體對象中,並將其他屬性標記爲無索引?

回答

1

在同一類型的細節上很好,它可以幫助您免去需要額外訪問數據存儲區的麻煩。正如您所指出的那樣,將不需要查詢或排序的任何屬性標記爲未編制索引是一個好主意,因爲它可以提高寫入性能並減少存儲空間。

您可能會發現文章mastering the datastore有用。他們解釋了更多關於實體和索引如何構建和存儲的細節。

+0

非常感謝。所以即使我的網站是「eBay like」,我應該使用一個實體對象來存儲所有廣告信息?我可以通過它查詢沒有額外的性能(和流量)負載?廣告的細節將在點擊廣告的頭後加載,所以我真的不需要它們。 – kovalu 2011-03-20 14:11:42

+0

@kovalu如果您將一起展示這些信息,我會將它們放在一起 - 這樣會更有效率(因爲您需要更少的數據存儲)。如果你不需要一起顯示信息,你可以分開實體。你可能也想爲你的應用做一個簡單的基準測試,但是人們通常發現加載「小」和「大」實體的性能差異可以忽略不計。 – 2011-03-20 14:43:58

+0

好的,再次感謝。在所有廣告(用戶將在eBay上進行搜索)列表中,將只有標題信息。如果他們點擊廣告的標題,我將需要廣告正文中的其他信息。大量的信息是共享的,所以在廣告的細節上我也需要廣告的信息。我目前的解決方案是讓他們分開,根據廣告的細節進行分析,我會向他們詢問,以便從頭部和身體獲取所有信息。 – kovalu 2011-03-20 15:03:54