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. 发布后的项目打开swagger

    使用netcore作为纯后端提供api已经变得越来越频繁,swagger也成为很多人的选择.通常会在代码中限制ASPNETCORE_ENVIRONMENT为Production时关闭swagger.但 ...

  2. VS.NET(C#)--2.1认识控件

    Web控件 四种控件 1.HTML控件 2.HTML服务器控件    在服务器端执行 3.ASP.NET服务器控件   在服务器端执行 4.用户控件和自定义控件  用户自定义控件在服务器端执行 注意: ...

  3. win10下,cmd,power shell设置默认编码为‘UTF-8

    power shell 注:以下内容在非Windows平台上写的,可能会有拼写错误,如果有,请指正,我会尽快修正.可以用Powershell的配置文件(\(PROFILE)来实现.\)PROFILE默 ...

  4. 读取经纬度坐标并存储为字典格式,即key为ID,value为轨迹点

    示例数据: #格式为txt文本 ID,L,B 001,116.5154,45.1154 001,116.5160,45.1153 ... 002,xxx,xxx ... 目标:建立轨迹数据结构,即di ...

  5. centos6克隆虚拟机后,网络无法访问和启动

    使用vmware安装centos6虚拟机时, 克隆虚拟机后无法访问网络. 原因是:产生了重复的网卡信息** 克隆后在70-persistent-net.rules文件中会多一行网卡信息,把第一行网卡信 ...

  6. Xshell 上传文件到Ubuntu

    打开Xshell,连上一台Linux服务器或者是虚拟机 如果要方便的上传文件,需要rz 先测试是否安装rz 命令行~$ rz 如果出现未安装(或者command not found)且建议sudo a ...

  7. 关于Ad-hoc

    Ad-hoc是wifi的一个模式,依托普通无线局域网802.11家族.网络中所有结点的地位平等,无需设置任何的中心控制结点,省去了无线中介设备AP.比如一台电脑建立了一个网络,这个时候加入了两台电脑. ...

  8. OpenStack kilo版(5) Neutron部署

    neutron简介: Neutron 通过 plugin 和 agent 提供的网络服务. plugin 位于 Neutron server,包括 core plugin 和 service plug ...

  9. apache ftp server 设置

    <server xmlns="http://mina.apache.org/ftpserver/spring/v1" xmlns:xsi="http://www.w ...

  10. C++中priority_queue的用法

    本来想自己写一写的,但看到这个随笔,感觉要写的东西跟这个差不多,就直接附上链接. 需要注意事项: rand()函数需要引入头文件#include<cstdlib>. 自定义类型,重载ope ...