我已經做出了一個簡單的java代碼來使60多萬個現有節點之間的關係,關係數據取自100萬行,問題是幾乎永遠需要完成創建關係,在寫這篇文章的時候只有7930個關係被創建。Neo4j花費很長時間來創建節點之間的關係
如何解決這個問題?
public void createRealtionBetweenNodes(Postgresql object){
Map<Integer, String[][]> data = object.getRelationData();
try (Driver driver = org.neo4j.driver.v1.GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("user", "password"));
Session session = driver.session()){
for(int incrementer: data.keySet()){
String [][] dataholder = data.get(incrementer);
session.run("match (x:Node{id:{id1}}),(y:Node{id:{id2}}) create (x)-[:Knows{ID:{KID}}]->(y);", parameters("id1",dataholder[0][0],"id2",dataholder[0][1],"KID",dataholder[0][2]));
}
}
}
分配採樣和你的代碼 –
我已經更新了我的代碼@TomažBratanič – User
不知道怎麼會有人回答你:我們有不知道你的閱讀從Postgres讀取多長時間,如果這是瓶頸(你運行你的代碼而不插入neo,並從postgres讀取?)。我們不知道您使用的是什麼類型的硬件或虛擬機,或者您的兩個數據庫共享相同的環境。我們不知道每個插入操作需要多長時間(您的代碼不會測量任何內容)。而且「在寫這篇文章的時候,」我們不知道你坐了多久等待。 –