0

我正在使用 PHP 和 mongodb。我已经使用 mongodb 2.0.4 对 20 毫秒以上的所有内容打开了系统分析。当我为每个小查询加载一个简单页面时,它会在系统配置文件中记录相同的查询,例如 4 次、10 次,有时甚至 24 次!因此页面加载速度非常慢!为什么会这样??

查询可以很简单:

$c2 = $things->find();
        foreach($c2 as $doc) {
            // some code...
        }

谢谢!!

编辑:完整代码:

<?php

$m = new Mongo();
$db = $m->selectDB("test");


function getAllData ($db) {

    $some = $db->some;

        $cursor = $some->find();


        $js = "function() {
        return ((";

        foreach ($cursor as $doc) {
            $js .= "this.idE == '" . $doc['_id'] .  "' || ";

        }
        $js = substr($js,0,-4);
        $js .= ")";
        $js .= ");}";

        $names = $db->names;
        $c2 = $names->find(array('$where' => $js));
        foreach($c2 as $doc) {
            echo $doc['name'];
        }

}

getAllData ($db);


?>
4

1 回答 1

0

这两个查询中的哪一个正在成倍增加?

我会开始修改代码,看看会发生什么。我要做的第一件事是删除“foreach”,而只做一个“getNext”,看看这是否会影响调用查询的次数。我最好的猜测是它与 Mongo 驱动程序批量获取结果的方式有关。当您进行查询时,它不会一次下载所有行,而是分批下载它们。您可能会将这些批量提取视为重复查询。我认为有一种机制可以调整批量大小,这可能会有所帮助。此外,更新到最新的驱动程序可能会有所帮助。

于 2012-05-21T03:39:11.043 回答