这个问题非常简单,几乎所有内容都在标题中。
当我这样做时
MongoClient mc = new MongoClient();
我的程序挂起大约10-15秒,没有任何明显的CPU或内存使用量变化。
在此之后,对数据库的调用似乎闪电般快。我的程序在本地作为我的数据库运行。
我的开发笔记本电脑非常快,所以这个问题不太可能与硬件有关。
这是我第一次将MongoDB与java一起使用。使用PHP,数据库连接几乎是即时的,所以我想它应该是相同的!
这是我的程序的输出
program start time : 1390057127744 // 0,000s
new mongojacktest // a small object I made for my tests
new MongoClient() // The output hangs here and if I comment this line I get errors
// but my entire program runs in 5ms or less
start time :1390057127745 // 0,001s
getDB(myTestDb)
start time :1390057127745 // 0,001s
getCollection - testCollection
start time :1390057127745 // 0,001s
print db collections :
firstCollection
system.indexes
program exit time : 1390057143987 // 16,242s WTF?
我有什么遗漏或这是正常的吗?
谢谢!
答案 0 :(得分:0)
我无法确定,但可能是它正在尝试解析主机名,也许您的DNS速度很慢或无法访问。要测试(如果您在单个Mongo节点上运行)模式,请传递服务器的确切地址,即127.0.0.1
:
MongoClient mc = new MongoClient("127.0.0.1", 27017);
您可以再做一次尝试,即在您的计算机上禁用IPv6协议。