2017-10-16 128 views
0

我在Docker中使用Neo4J。儘管進行了重大的刪除操作,圖形的商店大小似乎增加了。重大刪除操作後Neo4J存儲大小增加

如果有人能告訴我這是爲什麼,我將不勝感激。謝謝!

+0

你如何執行刪除? 'cypher'標籤建議您使用Cypher,這是否正確? –

+0

所以我試圖刪除所有未連接的節點。所以這是我用的: 'MATCH(n)WHERE size((n) - ())= 0 DETACH DELETE n;' –

+0

你如何計算商店的大小?你在計算交易日誌嗎? – logisima

回答

1

它來自Neo4j如何存儲數據。

有一個節點存儲(即一個文件),每個節點的大小都是固定的。所以當你刪除一個節點時,文件中相應的記錄被清除,但文件仍然具有相同的大小。

經過一段時間,Neo4j可以重複使用這個節點的ID,以避免有一個大的'空'文件。

因此,您的數據存儲大小不會存在是正常的。此外,每當您對數據執行操作(創建,更新或刪除)時,修改都會保存到事務日誌中。

這就是爲什麼您的數據存儲大小增加。

您可以配置此日誌保留策略,並且默認保留最後X天的所有事務(我不記得該數字)。 乾杯

+0

謝謝,這是否意味着增加的大小隻是由於事務日誌? –

+0

就你而言,是的,我認爲。你可以通過做同樣的事情來檢查它,但是當你計算商店大小時不要照顧'neostore.transaction.X'文件 – logisima