PHP连接MySQL慢是指,使用PHP来连接MySQL的过程中,用户需要等待的时间比较长,如果不能很快的连接完,就会影响页面的响应速度,严重时会影响用户体验。那么,为什么会发生这样的情况呢?下面就来探究一下 PHP 连接 MySQL 慢的原因。
1. PHP连接MySQL慢的基本原因
从根本上讲,PHP连接MySQL慢的主要原因在于网络延迟和负载分布不均匀,网络延迟指的是socket连接服务器时,需要经过很多网关、网络节点,中间涉及的网络延迟可能就导致PHP连接MySQL时间过长,而负载分布不均匀指的就是服务器负载和带宽处在不均衡的状态下,会导致MySQL数据库服务器响应较慢。
2. 存在登录冗余
大部分情况下,PHP连接MySQL慢还可能是由于登录冗余造成的,比如,PHP代码在发起连接时每次会尝试创建一个新的数据库连接,而不是从已有连接池里面获取,这就导致性能不理想,用户体验差。
可以通过简单的几步,就可以解决这个问题。
首先,编写代码,建立使用者的连接池:
$conns= array();
foreach ($conns as &$c) {
if (!$c) {
$c = mysqli_connect(HOST, USER, PWD,DB);
}
}
循环查询上一步建立的连接池,如果其中有NULL值,则使用mysqli_connect()函数连接:
$conn = null;
foreach ($conns as &$c) {
if ($c) {
$conn = $c;
break;
}
}
最后,在使用完数据库之后,不要forget把连接放回连接池(再次空闲时加载):
if ($conn) {
foreach ($conns as &$c) {
if ($c == $conn) {
$c = null;
break;
}
}
}
3. 综上所述
通过以上步骤,我们可以看出,PHP连接MySQL慢的一个最主要的原因是网络延迟和负载分布不均匀,另外,如果存在登录冗余,那么也会影响到连接MySQL的速度。最后,如果能够建立和维护连接池,也可以改善PHP连接MySQL的性能。