Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python neo4j处理数据快吗?对我来说太慢了_Python_Neo4j_Graph Databases - Fatal编程技术网

Python neo4j处理数据快吗?对我来说太慢了

Python neo4j处理数据快吗?对我来说太慢了,python,neo4j,graph-databases,Python,Neo4j,Graph Databases,我正在检查neo4j以处理数据。 但它太慢了,看到重新发布的论文,neo4j可以处理数十亿个节点和边缘。但只要看看下面的代码和数千个节点,它就太慢了。有没有其他好的或合适的方法来使用它或特殊的设置 谢谢 from neo4j.v1 import GraphDatabase, basic_auth driver = GraphDatabase.driver("bolt://192.168.0.69:6969", auth=basic_auth("c8c8", "c8c8")) session =

我正在检查neo4j以处理数据。 但它太慢了,看到重新发布的论文,neo4j可以处理数十亿个节点和边缘。但只要看看下面的代码和数千个节点,它就太慢了。有没有其他好的或合适的方法来使用它或特殊的设置

谢谢

from neo4j.v1 import GraphDatabase, basic_auth

driver = GraphDatabase.driver("bolt://192.168.0.69:6969", auth=basic_auth("c8c8", "c8c8"))
session = driver.session()



session.run("CREATE (a:Person2 {name: {name}, title: {title}})",
            {"name": "Arthur", "title": "King"})


for i in range(3000):
    tt = "CREATE (a:Person" + str(i) + " {name: {name}, title: {title}})"
    session.run(tt,
            {"name": "Arthur", "title": "King"})
    print (i)



result = session.run("MATCH (a:Person) WHERE a.name = {name} "
                     "RETURN a.name AS name, a.title AS title",
                     {"name": "Arthur"})
for record in result:
    print("%s %s" % (record["title"], record["name"]))


session.close()

这里有三件大事需要解决

首先,您需要在:Person(name)上创建索引,以便在末尾快速查找

第二,在查询和循环中不应该使用不同的标签
:Person
工作正常,无需使用
:Person2
或循环中的其他人员标签。如果希望循环中有不同的值,请将循环编号附加到名称或标题,而不是标签

第二个问题是,在循环的每个迭代中执行一个事务,这将导致糟糕的性能

最好通过批处理接收数据,传递一个数据列表,您将在Cypher中释放这些数据。只有3000个条目,您实际上可以在一个事务中处理这些条目

给你