mysql_connect和mysql_pconnect区别
区别在于当php以apache模块方式运行时, 由于apache有使用进程池, 一个httpd进程结束后会被放回进程池, 这也就使得用pconnect打开的的那个mysql连接资源不被释放, 于是有下一个连接请求时就可以被复用.
这就使得在apache并发访问量不大的时候, 由于使用了pconnect, php节省了反复连接db的时间, 使得访问速度加快. 这应该是比较好理解的.
但是在apache并发访问量大的时候, 如果使用pconnect, 会由于之前的一些httpd进程占用的mysql连接没有close, 则可能会因为mysql已经达到最大连接着, 使得之后的一些请求永远得不到满足.
例如:
若mysql最大连接数设为500, 而apache的最大同时访问数设为2000
假设所有访问都会要求访问db, 而且操作时间会比较长
当前500个请求的httpd都没有结束的时候...之后的httd进程都是无法连接到mysql的(因已经达到mysql最大连接数). 只有当前500个httpd进程结束或被复用才可以连接得到了mysql.
其实这个也很好解释了xgy_p的测试中若操作比较简单, pconnect比connect效率高很多, 而且跟使用jsp的连接池的速度比较接近. 因为这个时候httpd进程可以不断的给复用.
而 当DB操作复杂, 耗时较长时, 因httpd会fork很多并发进程处理, 而先产生的httpd进程不释放db连接, 使得后产生的httpd进程无法连上db. 因为这样没有复用其它httpd进程的mysql连接. 于是会就产生很多连接超时, 像一开始的1000个并发连接测试说几乎都是连接超时就是这个原因.
---
(反进来看jsp用的如果是纯粹的db连接池, 则不会有因为达到mysql连接上限而连不上的问题, 因为jsp的连接池会使得可以等待其它连接使用完毕并复用. )
因此在并发访问量不高时,使用pconnect可以简单提高访问速度, 但在并发量增大后, 是否再使用pconnect就要看程序员的选择了..
就我个人认为, php现在对mysql的连接并没有真正用到连接池, pconnect也只是相当于借了apache的进程池来用, 所以在并发访问量大的时候pconnect并不能很好的提高访问DB效率. 在这一点上. php的确比不上jsp
转载于:https://blog.51cto.com/phpbk/110103
mysql_connect和mysql_pconnect区别相关推荐
- mysql connect 500_MySQL连接问题【mysql_connect和mysql_pconnect区别】
apache模块方式下: 区别在于当php以apache模块方式运行时, 由于apache有使用进程池,一个httpd进程结束后会被放回进程池, 这也就使得用pconnect打开的的那个mysql连接 ...
- php中mysql_connect与mysql_pconnect的区别
前阵子去面试被问到了mysql_connect跟mysql_pconnect的区别, 很不幸本人只答出一条, 似乎还没被认可~ 回来翻了下php手册记录之. 简单的来说mysql_pconnect是用 ...
- php mysql_connect(),mysqli区别
php mysql_connect(),mysqli区别 由于基础问题,这个东西害我找了一天错误在哪也没找出来,晚上终于好了,总结下: mysql_connect()是面向过程的数据库连接方式,mys ...
- php mysql persistent_PHP API中,MYSQL与MYSQLI的持久连接区别
很久很久以前,我也是因为工作上的bug,研究了php mysql client的连接驱动mysqlnd 与libmysql之间的区别php与mysql通讯那点事,这次又遇到一件跟他们有联系的事情,my ...
- mysql_connect报告”No such file or directory”错误的解决方法
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- mysql高级查询面试_高级MySQL数据库面试问题 附答案
因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题. 1. 如何使用SELECT语句找到你正在运行的服务器的版本并 ...
- mysql1040_解决mysql 1040错误Too many connections的方法
从官方文档知道linux上面编译安装的mysql默认的连接为100个,这样对于网站的需求来说是远远不够的. mysql官方告诉我们需要修改max_connections的值,那么我们怎么去修改呢?有两 ...
- mysql 偶然出现 2003_数据库偶尔出现MySQL server has gone away 错误
首先感谢以下两边文章的作者,我是参阅了2位作者的文章之后,经过测试加入自己的理解. 说说mysql_connect和mysql_pconnect的区别,这俩函数用法上差不多,网上有说应该用pconne ...
- apache的keepalive和keepalivetimeout(apache优化)
在APACHE的httpd.conf中,KeepAlive指的是保持连接活跃,类似于Mysql的永久连接.换一句话说,如果将KeepAlive设置为On,那么来自同一客户端的请求就不需要再一次连接,避 ...
最新文章
- 一行代码:你的纯文本秒变Markdown
- MySQL分库分表使用Snowflake全局ID生成器(3rd)
- JavaScript区分click事件和mousedown(mouseup、mousemove)方法
- 推荐系统与协作过滤面临的主要问题
- ES6类的使用和定义.Json.Promise对象的使用
- SAP Fiori Elements里的SAP自定义注解annotation sap-text
- python+selenium_浏览器引擎
- Microsoft .NET 框架资源基础 ---摘自:msdn
- c语言中如何取消最后一个空格,新人提问:如何将输出时每行最后一个空格删除...
- .net core 5 IIS Api网站部署需要注意
- 熟悉c语言运行环境实验原理,c语言实验报告1
- python语言能做什么-python语言用来干什么
- nlp基础—5.SkipGram, CBOW, Glove, MF,Gaussian Embedding, 语言模型以及各类Smooting技术
- BZOJ1086 [SCOI2005]王室联邦(树分块)
- halcon 深度学习标注_深度学习in Halcon流程
- 动态炫酷的404页面源码
- numpy.array函数详解
- 移动硬盘安装win10操作系统
- win7黑屏,提示副本不是正版的激活解决办法
- 求职经历,三轮技术面 +HR 面,面试也不过如此
热门文章
- 字符的用意_北辰的符号意义 阅读答案
- 如何腾出计算机内存,win10这几个步骤,瞬间为c盘腾出多G内存
- 智伴机器人广西团队_畅想科技 智绘未来——2020年全区乡村学校少年宫科技体验日活动在广西科技馆举办...
- cglib和asm相关的文章
- 鸿蒙应用案例:Ability应用与管理
- 《天天数学》连载48:二月十七日
- 【codevs1230】元素查找,弱弱的二分查找
- 比特币挖矿成本表_用算力趋势预测减半后比特币挖矿成本价
- 字体在ppt中可以整体替换吗_如何给ppt整体改字体_教你给ppt整体改字体的方法-系统城...
- 2017.10.9 放棋子 思考记录