我正在尝试编写一个php benchmark
以比较一些 RDBMS、NewSQL 和 NoSQL。该脚本仅执行查询并测量执行时间。
对于 mysql-like,我简单地使用:
$start = microtime(true);
$result = mysql_query($SQL);
$end = microtime(true);
我没有为我的基准测试获取数据。
但是使用 mongodb-php,函数find()
返回一个cursor
$start = microtime(true);
$collection = $this->_db->selectCollection($collection);
$cursor = $collection->find($query);
$end = microtime(true);
是否等效(时间/数据成本$cursor
)$result
?游标不加载数据,我必须迭代游标才能加载数据。这就是为什么在 MySQL 和 mongoDB 之间执行查询的时间如此不同或者只是 mongoDB 岩石......
我想知道将我的代码更改为:
$start = microtime(true);
$result = mysql_query($SQL);
while ($row = mysql_fetch_row($result)) {}
$end = microtime(true);
和
$start = microtime(true);
$cursor = $collection->find($query);
foreach ($cursor as $doc) {}
$end = microtime(true);
最后,是否可以说每次迭代 mongodb 游标数据都是直接从 mongodb 服务器而不是从计算机内存中获取的?