【问题标题】:PHP Mysql Configuration - Too many connectionsPHP Mysql 配置 - 连接太多
【发布时间】:2011-04-24 13:52:13
【问题描述】:

美好的一天!

我有一个网站部署在免费的网络托管服务器中。最近,我无法访问我的 SQL 并收到此警告:连接过多。

我的代码:

为了访问mysql,我创建了一个config.php文件。

 <?php
        // save this as config.php
        define('DB_HOST', 'localhost');
        define('DB_USER', 'username');
        define('DB_PASSWORD', 'password');
        define('DB_DATABASE', 'pascual4_eventpost');
        $conn=mysql_pconnect(DB_HOST, DB_USER, DB_PASSWORD)
          or die ("Error connecting to database");
        mysql_select_db(DB_DATABASE)
          or die ("Error: Cannot access database");
    ?>

所以如果我需要访问我的数据库。我只是打电话给require("config.php");

在脚本完成后 mysql 连接会自动关闭之前,我曾在某处读过。这就是为什么我不在我的 PHP 页面上放置任何 mysql 关闭连接代码的原因。还是我还需要手动关闭它并在每一页上输入mysql_close($conn);

所以我重新启动了我的电脑并刷新了我的 dns。幸运的是,现在我可以访问我的 mysql 数据库,但速度很慢。也许是因为我使用的是免费网络托管?但是,就我而言,有没有一种方法可以加快我的 mysql 连接和查询速度。我可以在上面的代码中包含哪些验证,以便提高 mysql 连接的性能?谢谢。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    正如您所说,当您的脚本终止时,PHP 将关闭所有打开的连接,因此除非您通过执行长时间运行的脚本/查询等来捆绑连接,否则这很可能是 @987654323 非常低的症状@mysqld 设置,考虑到您使用的是免费托管包,这并不令人意外。

    我不确定每个“页面”使用了多少个连接,但是:

    1. 根据我使用mysql_pconnect 的经验,通常情况会变得更糟,而不是更好。 (只需使用mysql_connect。)

    2. 如果您在同一页面上使用多个连接,最好尽可能重复使用相同的数据库连接。

    如果做不到这一点,可能是时候寻找更合适的托管包了。

    【讨论】:

    • @newbie 道歉 - 这是一个错字。 (意思是“只需使用mysql_connect”。)顺便说一句,如果你刚刚开始使用PHP,我会很想使用MySQLiPDO
    【解决方案2】:

    当您使用持久连接时,您可能会遇到这种连接泄漏。

    您是否考虑过不使用持久连接?还是使用 mysqli 库或 pdo 类并允许它们为您管理?

    【讨论】:

    • 如何进行持久连接?
    • @newbie 您已经在使用 pconnect 版本进行持久连接。这是邪恶的。请使用简单的 mysql_connect()。
    【解决方案3】:
        $conn=mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
        remove p here^
    

    从问题标题来解决问题。

    至于数据库性能,很难从“它很慢”这样模糊的描述中分辨出来。什么肯定是慢的?连接自己?你量过吗?一些疑问?哪些查询?

    【讨论】:

      猜你喜欢
      • 2017-10-30
      • 1970-01-01
      • 2017-12-27
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      相关资源
      最近更新 更多