我设置了 Mongo,一切都很好。当我使用 MongoVUE 或 shell 时,一切都快如闪电。
但是,在为 Windows 安装 PHP Mongo 驱动程序之后,每个查询都需要 15 秒以上的时间。即使是这个来自 PHP.net 的简单教程也需要 15 秒。
教程示例:
$time_start = microtime(true);
// connect
$m = new Mongo();
// select a database
$db = $m->comedy;
// select a collection (analogous to a relational database's table)
$collection = $db->cartoons;
// add a record
$obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($obj);
// add another record, with a different "shape"
$obj = array( "title" => "XKCD", "online" => true );
$collection->insert($obj);
// find everything in the collection
$cursor = $collection->find();
// iterate through the results
foreach ($cursor as $obj) {
echo $obj["title"] . "\n";
}
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "\nOperation took $time seconds\n";
输出:
Calvin and Hobbes XKCD Operation took 15.000731945038 seconds
我正在使用来自 Github的 Windows 7、WAMP、MongoDB 2.0.7 和 Windows PHP Mongo 驱动程序 (v1.1.12) 。
回答评论中的问题:
问:您是否在您的系统上测试过其他 PHP 代码及其持续时间?
答:这实际上是一个更大的 Web 应用程序的一小部分,其他一切正常。我很乐意发布你们认为有用的任何基准。
问:您是否在 Mongo 中分析过查询?
答:是的。如果我通过 shell 运行它,它会立即得到响应。
问:这是什么 WAMP 版本?
答: WampServer 2.2
问:这是什么 PHP 版本?
答: 5.3.13
Q:mongodb里面已经有数据了吗?
答: 我在发布基准测试之前删除了所有数据库,所以它所包含的只是下面代码插入的数据。
问:电脑的规格是什么(主要是内存)?
A: AMD Phenom II X4 840T 2.9GHz 处理器,4GB DDR3 RAM,64 位操作系统