【发布时间】:2015-02-10 10:14:29
【问题描述】:
我有一个包含三个连接的查询,它返回几百行。当我从命令行运行它时,它始终需要 8 到 9 秒才能完成。但是,当我通过 PDO 运行它时,通常需要大约 2 分 40 秒才能完成。当我在运行时运行“show processlist”时,我发现大部分时间都处于“复制到 tmp 表”状态,这似乎只有在我通过 PDO 运行时才会发生。
总结一下:
<? $pdo->prepare($query)->execute(); ?> => takes 2 minutes 40
$ echo $query | mysql; => takes 8 seconds
这是为什么?这是完全相同的查询;我实际上是在 php 和命令行之间复制和粘贴它。那么,为什么 pdo 需要这么长时间呢?更重要的是,如何在不更改查询的情况下加快执行速度?
【问题讨论】:
-
你能显示查询吗?
-
我们需要查询,您是否尝试过解释 PDO 运行的查询和控制台中的查询?
-
对查询进行解释并粘贴。
标签: php mysql performance pdo command-line-interface