Neo4j

neo4j 需要 12 小時才能載入

  • May 28, 2019

我正在使用本教程將巴拿馬文件載入到 neo4j 中,最後一步載入邊緣已經執行了 12 個小時。這是導入語句。

USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM 'file:/path/all_edges.csv' AS csvLine MATCH (n1 { id: toInt(csvLine.node_1)}),(n2 { id: toInt(csvLine.node_2)}) CREATE (n1)-[:ACCOC {role: csvLine.rel_type}]->(n2)

邊緣文件為 89MB。這是正常的嗎,或者我如何檢查這個過程的狀態?

查詢本身是有問題的。

它沒有在匹配模式中使用標籤,這意味著它必須執行 AllNodesScan 才能同時找到n1n2。因此,在您的 CSV 文件中每行會發生兩次。查詢的解釋會在查詢計劃中向您顯示這一點。

您需要將標籤添加到 and 的這些匹配模式中n1n2這至少可以讓您每行有兩個 NodeByLabelScans,但是為了使這個性能更好,您還需要在id屬性的相關標籤上建立一個索引。

不,這不正常。任何最新的處理器和磁碟都不應該花費 12 個小時來處理 89MB 的任何事情。

從基礎開始。程序是否還在消耗CPU?磁碟是否處於活動狀態。它執行什麼樣的讀寫操作。DBMS 或作業系統日誌中是否有任何消息?

引用自:https://dba.stackexchange.com/questions/216445