【发布时间】:2012-11-13 09:19:05
【问题描述】:
我使用 MySQL Workbench 来运行查询。运行它们几乎不需要任何时间。但是,当我通过 PDO 连接到数据库时,连接需要超过一秒钟!为什么?
<?php
$host = "localhost";
$db = "localhost";
$user = "root";
$pass = "";
$mtime = explode(" ",microtime());
$starttime = $mtime[1] + $mtime[0];
$conn = new PDO("mysql:host=$host;dbname=$db",$user,$pass);
$mtime = explode(" ",microtime());
$totaltime = (($mtime[1] + $mtime[0]) - $starttime);
echo $totaltime * 1000;
这个输出:
1008.975982666
【问题讨论】:
-
工作台是否通过
localhost或127.0.0.1或其他名称连接?连接速度问题通常与 DNS 查找问题有关。如果你有一个 shell(这是一个类似 Unix 的机器,dig localhost会很快返回吗?localhost应该被定义为127.0.0.1但是主机文件可能有些奇怪。 -
调用
microtime(true)获取当前时间的浮点值,摆脱这整个explode-time-calculation-thingie。 -
@MichaelBerkowski 我要试试!
-
@Sven 刚从网上复制粘贴过来的..
-
一个名为“localhost”的数据库对我来说听起来很奇怪。你确定这是对的。