如果我用phpmyadmin执行一些查询,它会显示0.0002秒的经过时间,即0.2毫秒。 如果我使用PDO通过PHP执行相同的查询,则经过的时间(仅适用于下面示例代码中的第三行)是20毫秒。
$db = new PDO('mysql:host=localhost;dbname=test', 'root', '', array(PDO::ATTR_PERSISTENT => true));
$cmd = $db->prepare($sql);
$cmd->execute(array($p1, $p2, $p3, $p4));
这段代码出了什么问题?
答案 0 :(得分:3)
什么都没有,除了你首先准备语句然后执行,这将花费(一点点)更多时间。应该不导致它的速度慢一百倍。尝试解释查询(EXPLAIN SELECT),看看它在做什么。我发现很难相信使用准备好的声明要慢得多。
答案 1 :(得分:2)
首先,PhpMyAdmin逐字执行查询。 PDO必须准备查询,解析参数,绑定它们,然后然后执行它。 这不是一个公平的比较。
其次,我不确定你得到的测量是否准确(0.2毫秒很快,我不希望任何查询)。
答案 2 :(得分:1)
如果第二个查询更快,则可能是连接时间。发送第一个查询时,将初始化与DB的连接。