0
我使用嵌入式neo4j 1.9.3
,会有如何提高neo4j的性能?
- 节点:3亿
- 关系:每个节点的6个亿
- 属性:每个客户关系1个
- 性质:
我的机器具有:
- RAM:8 GB
- HDD:1个TB
- CPU:2.20 GHz的
我的配置是:
- -Xms4g
- -Xmx6g
- -XX:+ UseG1GC
- dbms.pagecache.memory =4克
- -XX:+ UseG1GC
我使用Java API来编写和查询操作。查询速度非常好,但写入速度非常慢。这是什么原因?我应该添加什么配置来提高写入速度?
这里是我的代码编写部分:
private static IndexManager index = Graph.graphDB.index();
private static Index<Node> allNodes = index.forNodes("allnodes");
public Node create(String value) {
Node node = super.getOrCreate("name", value);
return node;
}
public void createNode() {
try {
Transaction tx = Graph.graphDB.beginTx();
Node subject = create(RDF.getInstance().getSubject().toString());
Node object = create(RDF.getInstance().getObject().toString());
Node predicate = create(RDF.getInstance().getPredicate().toString());
Node factNode = Graph.graphDB.createNode();
factNode.createRelationshipTo(subject, RelTypes.SUBJECT);
factNode.createRelationshipTo(predicate, RelTypes.PREDICATE);
factNode.createRelationshipTo(object, RelTypes.OBJECT);
allNodes.add(subject, "name", subject.getProperty("name"));
allNodes.add(predicate, "name", predicate.getProperty("name"));
allNodes.add(object, "name", object.getProperty("name"));
tx.success();
} catch (Exception e) {
e.printStackTrace();
}
}
我应该使用tinkerpop,还是有更好的?哪个工具对于将大型rdf三元组导入属性图很有效? –
直接使用Neo4j API。如果你建立了一个敏感的属性图模型,导入你的RDF结构* INTO *它。 –
谢谢你。你可以分享一些关于它的链接吗? –