如何避免重复连接数据库

时间:2014-02-17 14:44:57

标签: php mysql

我有这个PHP脚本,每秒都会从我的网站中的每个用户调用:

<?php
$user = addslashes($_POST["user"]);
require("db.php");

$query = mysql_query("SELECT * FROM users WHERE username = '$user'");
$row = mysql_fetch_array($query);
$id = $row["id"];
$date = date( 'Y-m-d H:i:s', time() );

$query = mysql_query("SELECT * FROM activity WHERE id_key = '$id'"); 
if (mysql_num_rows($query) > 0) 
{ 
    $upload = mysql_query("UPDATE activity SET last_activity = '$date' WHERE id_key = '$id'");
    if (!mysql_query($upload))
    {
         die('Error: ' . mysql_error());
    }
}
else{
    $sql = "INSERT INTO activity (id_key, last_activity) VALUES ('$id', '$date')";
    if (!mysql_query($sql))
    {
        die('Error: ' . mysql_error());
    }
}

我想知道是否有更好的方法或者每次如何删除数据库连接,因为这会使我的主机cpu重载。

1 个答案:

答案 0 :(得分:1)

使用 PHP 你无法避免这种情况。 Apache 通过启动新的独立 PHP 进程来处理每个请求,因此每个新进程都需要与数据库建立新连接。

实际上,建立连接所需的时间很短,但肯定不是“几微秒”。取决于您的基础设施,建立连接需要几毫秒 请注意,驱动程序始终建立一个 TCP 套接字,可能已加密,因此在连接时会有一些损失,但在标准 PHP 环境中无法避免。