apache模块方式下:
区别在于当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区别相关推荐

  1. mysql connect 500_MySQL连接问题【mysql_connect和mysql_pconnect区别】

    apache模块方式下: 区别在于当php以apache模块方式运行时, 由于apache有使用进程池,一个httpd进程结束后会被放回进程池, 这也就使得用pconnect打开的的那个mysql连接 ...

  2. php中mysql_connect与mysql_pconnect的区别

    前阵子去面试被问到了mysql_connect跟mysql_pconnect的区别, 很不幸本人只答出一条, 似乎还没被认可~ 回来翻了下php手册记录之. 简单的来说mysql_pconnect是用 ...

  3. php mysql_connect(),mysqli区别

    php mysql_connect(),mysqli区别 由于基础问题,这个东西害我找了一天错误在哪也没找出来,晚上终于好了,总结下: mysql_connect()是面向过程的数据库连接方式,mys ...

  4. php mysql persistent_PHP API中,MYSQL与MYSQLI的持久连接区别

    很久很久以前,我也是因为工作上的bug,研究了php mysql client的连接驱动mysqlnd 与libmysql之间的区别php与mysql通讯那点事,这次又遇到一件跟他们有联系的事情,my ...

  5. mysql_connect报告”No such file or directory”错误的解决方法

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  6. mysql高级查询面试_高级MySQL数据库面试问题 附答案

    因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题. 1. 如何使用SELECT语句找到你正在运行的服务器的版本并 ...

  7. mysql1040_解决mysql 1040错误Too many connections的方法

    从官方文档知道linux上面编译安装的mysql默认的连接为100个,这样对于网站的需求来说是远远不够的. mysql官方告诉我们需要修改max_connections的值,那么我们怎么去修改呢?有两 ...

  8. mysql 偶然出现 2003_数据库偶尔出现MySQL server has gone away 错误

    首先感谢以下两边文章的作者,我是参阅了2位作者的文章之后,经过测试加入自己的理解. 说说mysql_connect和mysql_pconnect的区别,这俩函数用法上差不多,网上有说应该用pconne ...

  9. apache的keepalive和keepalivetimeout(apache优化)

    在APACHE的httpd.conf中,KeepAlive指的是保持连接活跃,类似于Mysql的永久连接.换一句话说,如果将KeepAlive设置为On,那么来自同一客户端的请求就不需要再一次连接,避 ...

最新文章

  1. 一行代码:你的纯文本秒变Markdown
  2. MySQL分库分表使用Snowflake全局ID生成器(3rd)
  3. JavaScript区分click事件和mousedown(mouseup、mousemove)方法
  4. 推荐系统与协作过滤面临的主要问题
  5. ES6类的使用和定义.Json.Promise对象的使用
  6. SAP Fiori Elements里的SAP自定义注解annotation sap-text
  7. python+selenium_浏览器引擎
  8. Microsoft .NET 框架资源基础 ---摘自:msdn
  9. c语言中如何取消最后一个空格,新人提问:如何将输出时每行最后一个空格删除...
  10. .net core 5 IIS Api网站部署需要注意
  11. 熟悉c语言运行环境实验原理,c语言实验报告1
  12. python语言能做什么-python语言用来干什么
  13. nlp基础—5.SkipGram, CBOW, Glove, MF,Gaussian Embedding, 语言模型以及各类Smooting技术
  14. BZOJ1086 [SCOI2005]王室联邦(树分块)
  15. halcon 深度学习标注_深度学习in Halcon流程
  16. 动态炫酷的404页面源码
  17. numpy.array函数详解
  18. 移动硬盘安装win10操作系统
  19. win7黑屏,提示副本不是正版的激活解决办法
  20. 求职经历,三轮技术面 +HR 面,面试也不过如此

热门文章

  1. 字符的用意_北辰的符号意义 阅读答案
  2. 如何腾出计算机内存,win10这几个步骤,瞬间为c盘腾出多G内存
  3. 智伴机器人广西团队_畅想科技 智绘未来——2020年全区乡村学校少年宫科技体验日活动在广西科技馆举办...
  4. cglib和asm相关的文章
  5. 鸿蒙应用案例:Ability应用与管理
  6. 《天天数学》连载48:二月十七日
  7. 【codevs1230】元素查找,弱弱的二分查找
  8. 比特币挖矿成本表_用算力趋势预测减半后比特币挖矿成本价
  9. 字体在ppt中可以整体替换吗_如何给ppt整体改字体_教你给ppt整体改字体的方法-系统城...
  10. 2017.10.9 放棋子 思考记录