现在我有一个配置文件如下:
<?php
return array(
'server'=>'localhost',
'username'=>'root',
'password'=>'123456',
'dbname'=>'duxiu',
'charset'=>'utf8'
);
当我使用两种方法连接mysql时,我对它花费的时间感到沮丧:
1
<?php
class Mysql{
private $conn;
public function __construct($c){
$this->conn=mysql_connect($c['server'],$c['username'],$c['password'],true) or die("连接出错");
mysql_select_db($c['dbname'],$this->conn);
if(isset($c['charset'])){
mysql_query("set names ".$c['charset'],$this->conn);
}
}
}
$c=require('config.php');
var_dump($c);
$db=new Mysql($c);
花费1.012秒。
2.当我使用如下:
<?php
class Mysql{
private $conn;
public function __construct($c){
$this->conn=mysql_connect($c['server'],$c['username'],$c['password'],true) or die("connect error");
mysql_select_db($c['dbname'],$this->conn);
if(isset($c['charset'])){
mysql_query("set names ".$c['charset'],$this->conn);
}
}
}
$c=array('server'=>'127.0.0.1','username'=>'root','password'=>'123456','dbname'=>'duxiu','charset'=>'utf8');
var_dump($c);
$db=new Mysql($c);
现在花费0.012秒。
为什么?
答案 0 :(得分:1)
区别:当您使用127.0.0.1而不是localhost时,PHP将尝试与mysql建立TCP连接,而不是使用UNIX域套接字。
定期使用UNIX域套接字应该更快,但在您的应用程序中似乎并非如此,因为使用UNIX域套接字连接需要很长时间。你修改了php.ini值mysql.default_socket
还是pdo_mysql.default_socket
?默认情况下它应该为空。如果没有,你可以发布这个价值吗?