我的应用程序将托管在共享托管服务提供商中,限制为25个Mysql并发连接。以下是我连接数据库的代码
function dbConnect() {
$dbHost = 'localhost';
$dbUser = 'user';
$dbPass = 'pass';
$dbName = 'dbase';
mysql_connect($dbHost, $dbUser, $dbPass)or die(mysql_error());
mysql_select_db($dbName) or die(mysql_error());
}
我的应用程序更多是关于数据库查询。仅主页中至少有20个mysq_query。我编写主页的方式如下所示
include 'config.php';
dbConnect();
query1 ... //获取初始变量
导致多个查询的流程变量
query2 ... //处理结果
query3 ... //处理结果
等等......
查询20 ... //处理结果
我不能再将查询最小化了,因为大多数查询都是其他查询的先决条件。我预计每天至少有1000个用户,并且50%的用户可能会在同一时间或相隔至少几秒钟连接。
提前致谢。
答案 0 :(得分:2)
对于它的价值,对genpet的原始帖子的问题2.和3.的一些答案:
当且仅当(假设它未使用mysql_pconnect()
打开)时,PHP才会关闭与MySQL的连接:
mysql_close()
因此,如果您在同一个脚本中发送了20个查询,则只消耗1个连接
我想到了一个想法。考虑这种模式:
*_pconnect()
*_close()
这样,我相信可以解决低并发连接限制(即使我同意人们建议您的托管计划可能不适合满足您的需求)
这是理论,但我没有尝试过。
答案 1 :(得分:0)
我不会在上面发表评论,因此这不是答案,而是我的第一条评论的延伸(“升级您的托管计划”)
IMO,你的连接设计还不行。 “die”是一个终端函数,如果你期望失败,那么构建一个重试选项和一个用户友好的错误处理函数。此外,每次打开和关闭数据库都是时间密集型的,您可能能够比关闭更快地挤出三个查询并再次打开一个(但这取决于几个因素,这可以减轻其他人建议的共享池添加。 )但我的建议是升级托管计划并“正常”开发。然后你的风格还可以,除了使用比“die”更友好的错误屏幕:-)以及pdo或mysqli,而不是mysql_ functions