2017-11-25 178 views
0

創建一個附加節點來保存額外的屬性是一個好主意嗎?例如:用戶節點,用戶數據節點。如果用戶數據將有大量數據,是否有助於對僅涉及用戶節點的查詢進行內存優化?創建節點只是爲了存儲父節點的屬性

或者,如果我們將所有的數據作爲屬性存儲在父節點本身中,它會不會有什麼區別?

+0

我不認爲它有重大的不同。可能有多少物業我們在談論? –

+1

這取決於你的很多問題! Neo4j將所有節點的屬性存儲爲一個鏈。因此,要獲得用戶的所有道具,擁有「數據用戶」節點會變得更糟(因爲Neo4j需要遍歷rel)。 – logisima

+0

@GaborSzarnyas現在有很少的屬性(4-5)。但它可能會轉移到500至600個屬性。 –

回答

1

我認爲你應該只使用Neo4j爲圖遍歷+其他數據庫管理系統在方便的層次結構(我的意思是基於文檔的DBMS,如MongoDB)中存儲你的600個屬性。

從我的經驗來看,與MongoDB相比,Neo4j在查找上並不是很快。 另外它的存儲效率並不高。

600在每個節點中的扁平屬性看起來像設計錯誤。

此外,您可以查看混合圖形文檔解決方案,如Arango或Orient。但我不確定他們的可靠性,因爲我使用Mongo + Neo4j的項目。