Mongo比MongoClient更快

时间:2014-04-22 11:10:46

标签: php mongodb

在php.net之后不推荐使用

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);
}

1 个答案:

答案 0 :(得分:2)

Mongo速度更快,但这不是一件好事。

但是你的实际问题的答案在代码中:

$mongo = new Mongo( 'mongodb://localhost' );

Mongo的默认写入问题是0,这意味着它无需检查写入是否实际有效,而MongoClient将会有效。

这是一篇很好的文章,解释了MongoMongoClient之间的差异,形成了PHP和MongoDB驱动程序之一:http://derickrethans.nl/mongoclient.html

  

现在,您可能想知道我们为什么要使用MongoClient全面替换Mongo。最大的原因是新类默认会写入确认