Neo4j
neo4j 需要 12 小時才能載入
我正在使用本教程將巴拿馬文件載入到 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 才能同時找到
n1
和n2
。因此,在您的 CSV 文件中每行會發生兩次。查詢的解釋會在查詢計劃中向您顯示這一點。您需要將標籤添加到 and 的這些匹配模式中
n1
,n2
這至少可以讓您每行有兩個 NodeByLabelScans,但是為了使這個性能更好,您還需要在id
屬性的相關標籤上建立一個索引。
不,這不正常。任何最新的處理器和磁碟都不應該花費 12 個小時來處理 89MB 的任何事情。
從基礎開始。程序是否還在消耗CPU?磁碟是否處於活動狀態。它執行什麼樣的讀寫操作。DBMS 或作業系統日誌中是否有任何消息?