1、当 函数 mysql_connect 的前三个参数(server username password)相同,并且第四个参数(new_link)不传递时候,重复调用 mysql_connect 是会返回相同的连接。

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长连接问题的更多相关文章

  1. mysql长连接和短连接的问题 转

    什么是长连接? 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态. 通常的短连接操作步骤是: 连接->数据传输->关闭连接: 而长连接通常就是: 连接-> ...

  2. mysql长连接和短连接的问题

    什么是长连接? 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态. 通常的短连接操作步骤是: 连接->数据传输->关闭连接: 而长连接通常就是: 连接-> ...

  3. mysql长连接

    长连接是干嘛的:  它是做连接复用的: 在openresty中的lua-resty-mysql 里 connect方法去连接mysql时会去ngx_lua cosocket连接池中寻找是否有可用连接 ...

  4. mysql 长连接断开问题

    从MySQL 5.0.3开始,默认情况下禁止再连接,这是5.0.13中的新选项,提供了一种以显式方式设置再连接行为的方法. mysql应用程序建立的长连接,大约过8小时会断开[没测过,网上都是这么说的 ...

  5. mysql长连接与短连接

    什么是长连接? 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态. 通常的短连接操作步骤是: 连接->数据传输->关闭连接: 而长连接通常就是: 连接-> ...

  6. PHP和mysql的长连接

    关于 PHP MySQL 长连接.连接池的一些探索 PHP连接MySQL的方式,用的多的是mysql扩展.mysqli扩展.pdo_mysql扩展,是官方提供的.php的运行机制是页面执行完会释放所有 ...

  7. PHP-数据库长连接mysql_pconnect的细节

    PHP的MySQL持久化连接,美好的目标,却拥有糟糕的口碑,往往令人敬而远之.这到底是为啥么.近距离观察后发现,这家伙也不容易啊,要看Apache的脸色,还得听MySQL指挥. 对于作为Apache模 ...

  8. 使用mysql的长连接

    有个资料看得我云里雾里的.现在用自己的言语来总结一下,写文字,能够加深自己的理解.也会在写的过程中帮助自己发现理解方面瑕疵,继续查资料求证. 短链接的缺点:创建一个连接,程序执行完毕后,就会自动断掉与 ...

  9. MySQL 线程池&连接池&长连接&短连接

    线程池 简介 1.mysql每连接每线程,mysql都分配一个单独的线程,该线程处理客户端发来的所有命令 2.每个线程会占用一定的系统资源,线程数越多消耗的系统资源也越多 3.线程的创建和销毁有一定的 ...

随机推荐

  1. C#使用管理员权限打开cmd执行命令行

    最近遇到个棘手的问题,服务器远程连不上,但是ftp可以,可能远程连接的服务挂了或者防火墙入站规则有点问题,想要重启,得找机房工作人员,还是挺麻烦的 想了想可以上传个执行cmd命令的东西,然后远程访问触 ...

  2. nginx 禁止浏览器缓存

    如果我们使用Nginx作为静态资源服务器,那么可以使用expires进行缓存控制. location /{ expires 1s; } 如果Get页面未做任何修改,服务器就是对客户端返回304 Not ...

  3. flutter从入门到精通三

    flutter可以通过一套代码运行在多个平台上,包括移动,web,桌面,嵌入式,但是在 Web 平台的支持尚未达到 Beta 阶段,请不要用在生产环节,在阅读文档时候,推荐大家阅读https://fl ...

  4. MySQL多表关联查询数量

    //多表关联查询数量select user, t1.count1, t2.count2from user tleft join ( select user_id, count(sport_type) ...

  5. 今日前端框架Vue学习笔记

    在线网页网址http://xingxunxinxi.com/StudentCourse/first.html代码 界面

  6. 对于vue中axios拦截器简单封装

    axios.interceptors.response.use( response => { // 如果返回的状态码为200,说明接口请求成功,可以正常拿到数据 // 否则的话抛出错误 if ( ...

  7. 打印html页面

    // 打印类属性.方法定义 const Print = function (dom, options) { if (!(this instanceof Print)) return new Print ...

  8. [#Linux] CentOS 7 应用程序添加快捷方式到桌面

    在centos使用中,会发现应用程序只能到eclipse的目录中执行eclipse的脚本去启动.这样很不方便. 查阅资料后找到了解决方案: 1.通过命令行,进入到桌面文件夹中 cd /home/you ...

  9. java - day015 - 手写双向链表, 异常(续), IO(输入输出)

    类的内存分配 加载到方法区 对象在堆内存 局部变量在栈内存 判断真实类型,在方法区加载的类 对象.getClass(); 类名.class; 手写双向链表 package day1501_手写双向链表 ...

  10. Alpha版本发布

                Alpha版本发布   Part1.基本介绍 作业所属课程 课程链接 作业要求 要求链接 团队名称 Typhoon 作业目标 通过本次团队项目,体验通过使用软件工程来研发项目的 ...