Mongo::__construct,它比MongoClient快3倍!!
自己尝试一下,运行下面插入1M文档的代码,它将在~20秒内完成用mongoClient替换mongo,它将在~180秒内完成
<?php
function mongo_connect($db, $collection) {
$mongo = new Mongo( 'mongodb://localhost' );
return $mongo->$db->$collection;
}
$mongodb='notificator1';
$mongocollection='tok';
$collection= mongo_connect($mongodb, $mongocollection);
echo $time = microtime(true). "\n";
$i=0;
while ( $i < 1000000 ) {
$row = Array('title' => "test #$i");
$collection->save($row);
++$i;
}
echo microtime(true) - $time;
?>
替换mongo_connect:
function mongo_connect($db, $collection) {
$m = new MongoClient('mongodb://localhost:27017');
$db = $m->selectDB($db);
return $collection = new MongoCollection($db, $collection);
}
答案 0 :(得分:2)
Mongo速度更快,但这不是一件好事。
但是你的实际问题的答案在代码中:
$mongo = new Mongo( 'mongodb://localhost' );
Mongo
的默认写入问题是0
,这意味着它无需检查写入是否实际有效,而MongoClient
将会有效。
这是一篇很好的文章,解释了Mongo
和MongoClient
之间的差异,形成了PHP和MongoDB驱动程序之一:http://derickrethans.nl/mongoclient.html。
现在,您可能想知道我们为什么要使用MongoClient全面替换Mongo。最大的原因是新类默认会写入确认