neo4j查询在Python for Windows中运行缓慢

时间:2017-08-11 05:03:34

标签: neo4j

我正在使用Python 2.7在Windows 10计算机上进行本地开发。我正在使用Neo4j 3.0.5和Python的Bolt驱动程序。

连接字符串如下:

ref.child("users").child(uid).child("saved").observeSingleEvent(of: .value, with: { snapshot in
    var ids = [String]()

    let saved = snapshot.value as! [String:AnyObject]
    for (elem, _) in saved {
        ids.append(elem)
    }
    self.postIDs = ids
    print(self.postIDs) // returns the values I would expect
})

运行查询时,我使用以下语法:

db = GraphDatabase.driver("bolt://localhost:7687", auth=basic_auth("USERNAME", "PASSWORD"), encrypted=False)

由于某种原因,大约有2秒的延迟。

我运行了以下测试(语法略有不同,但结果完全相同),慢速元素似乎正在加载数据库驱动程序,然后是第一次运行会话。

with db.session() as s:
    with s.begin_transaction() as tx:
        results = tx.run(
            "MATCH (a:User{username:{username}}) RETURN a.username", 
            {
                "username": username
            })

结果如下:

('GraphDatabase.driver',1.308)

('db.session',0.0)

('query1',1.017)

('query2',0.001)

('db.close',0.009)

字符串是测试步骤,数字是执行的秒数。

我正在开发Flask API,因此我可以通过加载一次然后引用加载的实例来超过数据库驱动程序加载时间。

但是,我似乎无法解决query1问题。

在Ubuntu Server Virtual框上运行完全相同的代码就像闪电一样运行,所以这似乎与Windows实现有关。

有任何想法可以解决这个问题吗?

非常感谢!

0 个答案:

没有答案