我的学说真的很慢。简单的查询和一秒钟来获得结果

时间:2011-04-21 05:54:03

标签: php mysql performance doctrine-1.2

这是我的设置:
Windows Server 2008 R2
MySql 5.1.562
PHP 5.3.2 学说1.2

任何人都有一个想法,为什么我的查询需要大约一秒钟来执行一个简单的查询。

echo date("Y-m-d H:i:s", time()) ."::::::" . microtime(true)."<br />";

             $q = Doctrine_Query::create()
            ->from("Ordering")
            ->where("client_id = ?",array($_SESSION["UserID"]));

            $ResProduct = $q->execute();

echo date("Y-m-d H:i:s", time()) ."::::::" . microtime(true)."<br />";  

以下是2 echo的结果,显示执行查询需要多长时间。

2011-04-21 01:48:24::::::1303364904.8051
2011-04-21 01:48:25::::::1303364905.8418

另一方面,数据库中没有数据。

修改
我直接在mysql控制台中执行查询并快速获得结果

mysql> select * from Ordering where client_id = 2;
+----+------------+-------+------+-----------+
| id | product_id | price | qty  | client_id |
+----+------------+-------+------+-----------+
|  7 |          1 |  0.89 |   20 |         2 |
+----+------------+-------+------+-----------+
1 row in set  (0.00 sec)

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

首先,您的代码似乎错误或其他任何内容。


但是,基本上,您的SQL查询通常如下所示:

select *
from Ordering
where client_id = 123456

这意味着client_id上设置索引应该会有所帮助 - 如果该表中有很多行,那么很多。


关于这一点的几个相关链接:

答案 2 :(得分:0)

出于好奇,您是否尝试过RawSQL查询?我们遇到了与此类似的问题,最终成为DNS问题。即使所有内容都应该是localhost,但是出于某种原因,apache服务器正在外部将地址解析为mysql。