1

背景:

我通过 AJAX 将变量传递给 php 文件。php 文件连接到服务器并检索它传递回 javascript 的结果。每次用户单击请求按钮时都会发生这种情况(大约每 5 秒)。因此,对于每个用户,php 文件(以及 mysql 连接)每 5 秒调用一次。

问题:

如上所述,mysql 连接的数量高得不切实际。

问题:

有没有更好的架构,而不是有这么多的 mysql 连接,我宁愿有更少的连接。

在此处输入图像描述

我已经阅读了一些关于 mysql_pconnect 的内容。但是如果我必须升级,因为我在某个地方读到 mysqli 不支持它,会发生什么?单个 mysql_pconnect 可以处理多少个查询?如果有人建议 mysql_pconnect 那么如何实现呢?

4

2 回答 2

1

您正在寻找的是用于数据库连接的单例设计模式。但它也有它的权衡。数据库单例设计的示例代码如下。

define('DB_NAME', "test");
define('DB_USER', "root");
define('DB_PASS', "rootpass");
define('DB_HOST', "localhost");

class Connection{
    private static $connection_;

    private function __construct(){
        $con = mysql_connect(DB_HOST, DB_USER, DB_PASS);
        mysql_select_db(DB_NAME, $con);
        Connection::$connection_ =  $con;
    }

    public static function getConnection(){
        if( !Connection::$connection_ )
            new Connection;
        return Connection::$connection_;
    }

}

$con = Connection::getConnection();

阅读更多

php单例数据库连接,这个代码是不好的做法吗?

静态类与单例类如何工作(数据库)

如果你谷歌,你可以找到大量的例子和信息。希望这可以帮助

于 2013-03-12T06:44:35.780 回答
1
Is there a better architecture where instead of having so many
mysql connections, I can rather have fewer connections.

不太清楚,但我认为对你来说,建议的 pconnect 是最好的选择。除非您现在有 mysqli 或 PDO_mysql 可用?

I have read a little bit about mysql_pconnect.
But what happens if I have to upgrade since I read somewhere that mysqli doesnt support it?

升级到 PHP 5.5 以上时,您可能需要更改方法。

How many queries can a single mysql_pconnect handle?

无限,只要连接保持活动状态。如果没有可用的空闲连接,则会创建一个新连接。

If anyone suggests mysql_pconnect then how to implement it?

将当前的 mysql_connect 调用更改为 mysql_pconnect。这应该就是全部了。

于 2013-03-12T07:01:49.267 回答