因为安全问题,服务器上的 MongoDB 设置为只允许服务器本地访问,所以在调试程序的时候,我用 SSH 转发,把端口映射到 Client 本地,读写都没问题。
我担心网络传输会影响性能,所以随便写了一行代码作了下测试:
大致上是
def Search(): db.mycollection.find_one({'blabla':'blabla'})
timeit(Search, number=1)
发现这条执行的时间只有 n.e-7, 相当不到 0.000001 秒,
这是如何做到的? 主机在美国,ping 一下也要 200ms 呀,这数据如何这么快就查询过来了?
1
zeraba 2019-01-24 22:29:24 +08:00 via Android
看代码的逻辑 都已经告诉你了,统计 Search 函数的执行时间,没统计结果从远程到本地的时间啊
|
2
Vegetable 2019-01-24 22:49:23 +08:00
还真没注意过,因为 findOne 一般都直接当 dict 用了,感觉不像是 lazyobject,我也去测试一下
|
3
Vegetable 2019-01-24 23:00:20 +08:00
```
from pymongo import MongoClient import timeit db = MongoClient() co = db["Risk"]["orders"] def search():co.find_one({}) print(timeit.timeit(search,number=1)) ``` 我这段 0.01s,符合预期,没有复现你的问题 |