MongoDB + SSH 转发的问题请教

2019-01-24 21:27:51 +08:00
 4ever911

因为安全问题,服务器上的 MongoDB 设置为只允许服务器本地访问,所以在调试程序的时候,我用 SSH 转发,把端口映射到 Client 本地,读写都没问题。

我担心网络传输会影响性能,所以随便写了一行代码作了下测试:

大致上是

def Search(): db.mycollection.find_one({'blabla':'blabla'})

timeit(Search, number=1)

发现这条执行的时间只有 n.e-7, 相当不到 0.000001 秒,

这是如何做到的? 主机在美国,ping 一下也要 200ms 呀,这数据如何这么快就查询过来了?

1307 次点击
所在节点    Python
3 条回复
zeraba
2019-01-24 22:29:24 +08:00
看代码的逻辑 都已经告诉你了,统计 Search 函数的执行时间,没统计结果从远程到本地的时间啊
Vegetable
2019-01-24 22:49:23 +08:00
还真没注意过,因为 findOne 一般都直接当 dict 用了,感觉不像是 lazyobject,我也去测试一下
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,符合预期,没有复现你的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/530384

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX