美好的一天!
我在免费的网络托管服务器中部署了一个网站。最近,我无法访问我的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连接的性能?谢谢。
答案 0 :(得分:2)
正如您所说,PHP将在您的脚本终止时关闭所有打开的连接,因此除非您通过执行长时间运行的脚本/查询等来连接连接,否则这很可能是一个非常低的{{{ 1}} mysqld设置,考虑到你正在使用免费托管包,这并不是一个巨大的惊喜。
我不确定每个“页面”使用了多少个连接,但是:
根据我使用max_connections
的经验,通常会使情况变得更糟,而不是更好。 (只需使用mysql_pconnect
。)
如果您在同一页面上使用多个连接,则尽可能重新使用相同的数据库连接。
如果做不到这一点,可能是时候寻找更合适的托管包了。
答案 1 :(得分:1)
使用持久连接时,可能会导致此连接泄漏。
您是否考虑过不使用持久连接?或使用mysqli库或pdo类并允许这些为您管理?
答案 2 :(得分:1)
$conn=mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
remove p here^
从问题标题中解决问题。
至于数据库性能,很难从这样模糊的描述中分辨出来,比如“它很慢”。什么肯定慢?连接自己?你测量过了吗?一些疑问?哪个查询?