使用mongodb php驱动程序的游标性能

时间:2014-01-03 17:28:26

标签: php mongodb cursor driver

php mongo查询游标处理有任何性能问题吗?

我的代码:

 $cursor = $collection->find($searchCriteria)->limit($limit_rows);
// Sort ascending based on S_DTTM
$cursor->sort(array('S_DTTM' => 1 , 'SYMBOL' => 1 ));

// How many results found?
$num_docs = $cursor->count(); 

if( $num_docs > 0 )
{
    // loop over the results
    foreach ($cursor as $ticks)
    {

请参阅

等代码
// request data 
$result = $cursor->getNext();

我的问题是在第一个查询返回(完全限制为100行)后,下一个查询继续循环。有数百万行返回,所以我想把限制设置为“限制”。

我确实做了重新索引以防万一,仍然没有区别。

我做错了什么? getNext的效果更好吗?

使用mongod ver 2.5.4和一周前下载的最新php mongo驱动程序 集合大小为100Gb,包括2个附加索引。

mongo log显示在不到200ms的时间内执行的所有查询。

  • 原来是查询问题,而不是php mongo驱动程序问题..

1 个答案:

答案 0 :(得分:0)

使用count()sort()可能会降低效果。