mysqli使用p:connect选项打开多个新进程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysqli使用p:connect选项打开多个新进程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2188字,纯文字阅读大概需要4分钟。
内容图文
![mysqli使用p:connect选项打开多个新进程](/upload/InfoBanner/zyjiaocheng/887/55d25fc90ef8412ca8f7be43d6d41d6a.jpg)
这是我第一次在这里提问.我搜寻了Google,stackoverflow等,以寻求有关我遇到的问题的帮助.我们目前正在使用PHP 5.3.10& MySQL 5.0.95和Apache 2.2.21(CentOS).
我们正在开始使用新代码从旧的mysql库过渡到mysqli的过程,而我正在领导这项工作.我试过了
>确保完成后,我明确关闭与数据库的连接
>完成结果集后,释放它们
>将连接限制从150增加到250
包含的文件(与会话检查等有关)使用旧样式mysql_pconnect()来验证某些内容.这些几乎包含在我们的所有代码中.
类似于代码:
$mysqli = new mysqli('p:'.DBHOST, DBUSER, DBPASS, $_SESSION['dbname']);
if ($mysqli->connect_error) {
throw new Exception($mysqli->connect_error, $mysqli->connect_errno);
exit;
}
// do my stuff here, a bunch of SQL queries like:
$sql = 'SELECT * FROM MyTable';
$result = $mysqli->query($sql);
if (!$result) {
throw new SQLException($sql, $mysqli);
exit;
// SQLException is an extension to mysqli_sql_exception that adds the
// query into the messaging internally
}
while ($result && $row = $result->fetch_assoc()) {
// do stuff here, like show it on screen, etc., all works normally
}
$result->free(); // free up the result
$mysqli->close(); // close the connection to the database
释放结果并关闭连接是我在收到“连接过多”错误后所做的事情.在此之前,我每次运行程序都会获得3-4个新的数据库连接. (在后端使用SHOW PROCESSLIST查看)
该问题有所减轻(它添加了0到3个新连接,而不是每次添加3个新连接).
我的一些读物暗示这可能与Apache线程有关,如果当前线程中不存在空闲的空闲连接,则该线程会添加新的持久连接.是这个吗mysqli是否不能很好地支持持久连接? (我应该放弃持久性吗?)
感谢您的任何建议.
解决方法:
我没有mysqli持久连接的经验,但是您的一些问题和期望对我来说似乎很奇怪.
mysqli opens multiple new processes with p: connect option
是的,这就是永久连接的用途
making sure I explicitly close the connection to the database when I’m done with it
您无法确保已明确将其关闭,因为您不能这样做.再次因为永久连接的唯一要点是持续打开
I would get 3-4 new database connections each time I ran my program.
因此,您必须确保只打开一个.
>您的脚本中至少有两个连接-一种是旧样式,有些是从mysqli?
>实例化多少个mysqli对象?
>正在运行多少个php脚本来满足一个HTTP请求?你确定吗?
毕竟,如果这么麻烦,那么为什么要使用持久连接?您从中获得任何真正的(不是想象中的)好处吗?
毕竟,如果您的版本是5.3,那为什么还要麻烦从mysql重写呢?
内容总结
以上是互联网集市为您收集整理的mysqli使用p:connect选项打开多个新进程全部内容,希望文章能够帮你解决mysqli使用p:connect选项打开多个新进程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。