php关于mysql长连接问题
1、当 函数 mysql_connect 的前三个参数(server username password)相同,mysql_connect 是会返回相同的连接。并且第四个参数(new_link)不传递时候,重复调用
php代码
<?php
$db = mysql_connect('localhost','root','root');
var_dump($db);
$db2 = mysql_connect('localhost','root','root');
var_dump($db2);
sleep(10);
页面打印信息
resource(3) of type (mysql link) resource(3) of type (mysql link)
mysql连接数
mysql> show full processlist;
+----+------+-----------------+------+---------+------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------------+------+---------+------+-------+-----------------------+
| 32 | root | localhost:54408 | NULL | Query | 0 | NULL | show full processlist |
| 44 | root | localhost:55278 | NULL | Sleep | 3 | | NULL |
+----+------+-----------------+------+---------+------+-------+-----------------------+
2 rows in set
2、当函数 mysql_connect 传递了第四个参数()后,再重复调用它。new_link
php代码
<?php
$db = mysql_connect('localhost','root','root',1);
var_dump($db);
$db2 = mysql_connect('localhost','root','root',1);
var_dump($db2);
sleep(10);
页面打印信息
resource(3) of type (mysql link) resource(5) of type (mysql link)
mysql连接数
mysql> show full processlist;
+----+------+-----------------+------+---------+------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------------+------+---------+------+-------+-----------------------+
| 32 | root | localhost:54408 | NULL | Query | 0 | NULL | show full processlist |
| 45 | root | localhost:55320 | NULL | Sleep | 4 | | NULL |
| 46 | root | localhost:55321 | NULL | Sleep | 4 | | NULL |
+----+------+-----------------+------+---------+------+-------+-----------------------+
3、mysql_pconnect 持久连接
php代码
<?php
$db = mysql_pconnect('localhost','root','root');
var_dump($db);
$db2 = mysql_pconnect('localhost','root','root');
var_dump($db2);
页面打印信息
resource(3) of type (mysql link persistent) resource(4) of type (mysql link persistent)
mysql连接数
mysql> show full processlist;
+----+------+-----------------+------+---------+------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------------+------+---------+------+-------+-----------------------+
| 1 | root | localhost:55391 | NULL | Query | 0 | NULL | show full processlist |
| 2 | root | localhost:55393 | NULL | Sleep | 5 | | NULL |
+----+------+-----------------+------+---------+------+-------+-----------------------+
4、mysql_pconnect 加上第四个参数(new_link)即可 建立多个 持久连接
php代码
<?php
$db = mysql_pconnect('localhost','root','root',1);
var_dump($db);
$db2 = mysql_pconnect('localhost','root','root',1);
var_dump($db2);
页面打印信息
resource(3) of type (mysql link persistent) resource(4) of type (mysql link persistent)
mysql连接数
mysql> show full processlist;
+----+------+-----------------+------+---------+------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------------+------+---------+------+-------+-----------------------+
| 1 | root | localhost:55391 | NULL | Query | 0 | NULL | show full processlist |
| 2 | root | localhost:55393 | NULL | Sleep | 316 | | NULL |
| 3 | root | localhost:55418 | NULL | Sleep | 4 | | NULL |
+----+------+-----------------+------+---------+------+-------+-----------------------+
3 rows in set
5、总结:
函数 mysql_pconnetc 创建的 持久化连接 在php脚本结束后,mysql的连接并不会立即结束。什么时候结束,是由mysql自己管理。函数 mysql_colse 不能关闭 mysql_pconnetc 的连接。
函数 mysql_connetc 创建的 连接 在php脚本结束后,mysql的连接也会相应结束。
php关于mysql长连接问题的更多相关文章
- mysql长连接和短连接的问题 转
什么是长连接? 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态. 通常的短连接操作步骤是: 连接->数据传输->关闭连接: 而长连接通常就是: 连接-> ...
- mysql长连接和短连接的问题
什么是长连接? 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态. 通常的短连接操作步骤是: 连接->数据传输->关闭连接: 而长连接通常就是: 连接-> ...
- mysql长连接
长连接是干嘛的: 它是做连接复用的: 在openresty中的lua-resty-mysql 里 connect方法去连接mysql时会去ngx_lua cosocket连接池中寻找是否有可用连接 ...
- mysql 长连接断开问题
从MySQL 5.0.3开始,默认情况下禁止再连接,这是5.0.13中的新选项,提供了一种以显式方式设置再连接行为的方法. mysql应用程序建立的长连接,大约过8小时会断开[没测过,网上都是这么说的 ...
- mysql长连接与短连接
什么是长连接? 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态. 通常的短连接操作步骤是: 连接->数据传输->关闭连接: 而长连接通常就是: 连接-> ...
- PHP和mysql的长连接
关于 PHP MySQL 长连接.连接池的一些探索 PHP连接MySQL的方式,用的多的是mysql扩展.mysqli扩展.pdo_mysql扩展,是官方提供的.php的运行机制是页面执行完会释放所有 ...
- PHP-数据库长连接mysql_pconnect的细节
PHP的MySQL持久化连接,美好的目标,却拥有糟糕的口碑,往往令人敬而远之.这到底是为啥么.近距离观察后发现,这家伙也不容易啊,要看Apache的脸色,还得听MySQL指挥. 对于作为Apache模 ...
- 使用mysql的长连接
有个资料看得我云里雾里的.现在用自己的言语来总结一下,写文字,能够加深自己的理解.也会在写的过程中帮助自己发现理解方面瑕疵,继续查资料求证. 短链接的缺点:创建一个连接,程序执行完毕后,就会自动断掉与 ...
- MySQL 线程池&连接池&长连接&短连接
线程池 简介 1.mysql每连接每线程,mysql都分配一个单独的线程,该线程处理客户端发来的所有命令 2.每个线程会占用一定的系统资源,线程数越多消耗的系统资源也越多 3.线程的创建和销毁有一定的 ...
随机推荐
- service mc_start.sh does not support chkconfig
在构建docker镜像时,编写Dockerfile构建镜像时,配置自启动脚本报错,service mc_start.sh does not support chkconfig 添加下面两句到 #!/b ...
- 全栈项目|小书架|服务器开发-Koa全局路由实现
什么是路由 路由就是具体的访问路径,指向特定的功能模块.一个api接口是由ip(域名)+端口号+路径组成,例如 :https://www.npmjs.com/package/koa-router就是一 ...
- 刷新ip地址 windows linux系统
linux:使用dhcp去更新ip与释放ip 释放ip: dhclient -r eth0 (释放eth0的ip) 更新ip : dhclient eth0 (针对eth0,请求新的ip) windo ...
- ASP.NET Core利用拦截器 IActionFilter实现权限控制
“麦荻网教系统”采用了前后端代码分离的架构,即“Miidy.Cloud.Console”站与“Miidy.Cloud.Manage”站(两个前端站)同时通过web api的方式调用“Miidy.Clo ...
- ef core2.2 mysql迁移问题
前段时间,遇到的是ef core mysql迁移的时候,bool类型会自动yingsheweishort的问题,需要手动更正一下今天测试的时候,遇到了MySQL数据表修改后迁移的问题. 问题详情如下 ...
- 在我的电脑中删除wps云文档图标
在我的电脑中删除wps云文档图标 右键点击win10左下角选择运行,输入regedit打开注册表后,找到以下注册表路径: HKEY_CURRENT_USER\Software\Microsoft\Wi ...
- git 讲解
部署结构: - Git版本控制 - Git的使用 - 快速控制服务器代码版本 - 有利于团队协作 - 安装流程 现有代码 -> 编辑区 -> 寄存区 -> 版本库 1. 安装GIT ...
- Django Rest framework序列化流程
目录 一 什么是序列化 二 Django REST framework配置流程之Serializer 三 Django REST framework配置流程之ModelSerializer 一 什么是 ...
- JAVA中为什么要使用接口,继承接口不是还要重写方法吗?为什么不直接写那些方法呢?:::接口的最主要的作用是达到统一访问
接口的最主要的作用是达到统一访问 那么什么叫统一访问呢 举个例子 你这样想,我做一个USB接口,有个读的抽象方法 那叫read()吧,然后mp3类实现,U盘类实现,移动硬盘类实现,这样我用的时候用US ...
- base64码通过http传输 +号变 空格 以及 图片编码后字符串较长导致POST提交失败 问题解决
场景:图片上传OSS存储,接口拿字符串去接前端传的base64码,服务器打印入参传的值,发现和前端打印的值有所区别,服务器中打印的值所有+号全部变成空格. 解决办法: Java中使用:url = ur ...