php mysql_connect pmysql_connect区别
<?php
mysql_pconnect('192.168.75.128', 'root', 'root');
mysql_close();
sleep(10);
echo 'pconnect';
命令行访问时
[root@LocalWeb01 baidu91]# php mysql.php
查看mysql进程的线程的情况
show processlist
15 | root | 192.168.75.128:43457 | NULL | Sleep | 9 | | NULL
超过10秒钟,线程号没有了,为什么长连接没有起作用了,因为php进程结束后,释放所有资源
可以查看php进程
10秒后
可以发现
php的线程数量可以通过 /usr/local/php/etc/php-fpm.conf max-chlidren修改,
浏览器访问时
确实有长连接,
可以做个实验,把php进程杀掉,在查看mysql线程情况,如下图
使用pconnect时, 有请求连接mysql时, php会检查是否之前有条相同的连接(以相同的用户名密码连接到同一个mysql服务器)已经建立, 如果有的话就直接使用这条连接
假设mysql服务器被配置为最大支持10个并发. 而nginx被配置为使用100个子进程.
nginx由一个父进程来协调将收到的http request分发给哪个空闲中的子进程处理, 这样很快处理了10个http请求, 假设10个都分配给了不同的子进程, 那末10条跟mysql间的持久连接就建立了, mysql的能力已经到了极限.
这时又来了一个http请求, nginx将它分给其他的任意不在这10个子进程中的进程, 那末这个进程就没有办法建立到mysql的连接了, 因为坑位已经满了.
使用持久连接还会有其他方面的问题.
如 果在你脚本中使用了持久连接, 又进行了锁表操作的话, 如果到脚本结束也没有去解锁的话. 那么下次再运行这个脚本的话, 它为了获得lock table会在那里无尽地等待过去的它unlock table, 过去的它已经不能回来了, 这里成了个死循环. 除非重启web或者mysql服务器. 另一个会造成锁定的就是事务了
php mysql_connect pmysql_connect区别的更多相关文章
- mysql_connect和mysql_pconnect区别(转)
php中mysql_pconnect()的实现方式:其实mysql_pconnect()本身并没有做太多的处理,它唯一做的只是在php运行结束后不主动close掉mysql的连接.mysql_pcon ...
- mysql_connect和mysql_pconnect区别
php中mysql_pconnect()的实现方式:其实mysql_pconnect()本身并没有做太多的处理,它唯一做的只是在php运行结束后不主动close掉mysql的连接.mysql_pcon ...
- php中mysql_pconnect()的实现方式.
网上有人说要想让mysql_pconnect正常稳定的工作,必须保证mysql max_connect参数设定大于或等于apache的最大线程(进程)数.这句话是有一定道理的.这要简单了解mysql_ ...
- MySQL连接问题【mysql_connect和mysql_pconnect区别】
--MySQL连接问题[mysql_connect和mysql_pconnect区别] -------------------------------------------------------- ...
- php中@mysql_connect与mysql_connect有什么区别
屏蔽错误如果有错的话,会把语句都显示出来.加@就不显示$link=@mysql_connect('localhost','root','123') or die ("数据库连接失败" ...
- PHP函数 addslashes() 和 mysql_real_escape_string() 的区别 && SQL宽字节,绕过单引号注入攻击
首先:不要使用 mysql_escape_string(),它已被弃用,请使用 mysql_real_escape_string() 代替它. mysql_real_escape_string() 和 ...
- mysql_fetch_row,mysql_fetch_array,mysql_fetch_object,mysql_fetch_assoc的区别!
php从mysql中访问数据库并取得数据,取得结果的过程中用到好几个类似的方法,区别及用法值得区分一下,看下面的代码 代码如下: <?php $link=mysql_connect('loc ...
- MySQL主机127.0.0.1与localhost区别总结
1. mysql -h 127.0.0.1 的时候,使用TCP/IP连接, mysql server 认为该连接来自于127.0.0.1或者是"localhost.localdomain&q ...
- php单引号和双引号的区别与用法
php里的单引号把内容当成纯文本,不会经过服务器翻译.而双引号则与此相反.里面的内容会经过服务器处理(process). 举个简单的例子: $foo="data"; echo ...
随机推荐
- ngnix +tomcat7 简单配置
1.下载tomcat7 修改conf 文件夹下的server.xml文件 1.<Server port="8205" shutdown="SHUTDOWN" ...
- sencha touch 在线实战培训 第一期 第八节 (完结)
2014.1.15晚上8点开的课 这是本期课程的最后一课,下期课程预计在春节后继续. 如果你有什么意见和建议可以将他们发送到邮箱:534502520@qq.com 本期培训一共八节,前三堂免费,后面的 ...
- 硬件RDMA的驱动配置和测试
author:headsen chen date: 2019-01-18 10:22:20 notice:created by headsen chen himself and not allow ...
- Stooge 排序
Stooge排序是一种低效的递归排序算法,甚至慢于冒泡排序.在<算法导论>第二版第7章(快速排序)的思考题中被提到,是由Howard.Fine等教授提出的所谓“漂亮的”排序算法. 实现 如 ...
- 如何查看Mac电脑的处理器核心数目-CPU的核心数目
1.通过点击关于本机来查看
- 【CF708E】Student's Camp 组合数+动态规划
[CF708E]Student's Camp 题意:有一个n*m的网格,每一秒钟,所有左面没有格子的格子会有p的概率消失,右面没有格子的格子也会有p的概率消失,问你t秒钟后,整个网格的上边界和下边界仍 ...
- python的for else组合用法
如下代码,输入评论,如果评论中含有敏感词则更换成*号,否则正常输入. li = ["老师", "你好", "333", "4444 ...
- 170809、 把list集合中的数据按照一定数量分组
/** * @Desc : 切分list位多个固定长度的list集合(我这是业务需要,直接是1w条数据切分) * @Author : RICK * @Params: [historyList] * @ ...
- This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in
地址:http://stackoverflow.com/questions/18852983/eclipse-reports-rendering-library-more-recent-than-ad ...
- https-->http and http-->https bitransfer
openssl s_client -connect myupload.mysite.net:443/cgi-bin/posupload.cgi -status -cert client.pem -ve ...