推广 热搜:   公司  快速  企业  中国  设备    上海  行业  未来 

php搭建mysql连接池

   日期:2024-10-31     移动:http://keant.xrbh.cn/quote/6839.html

一直以来,php一直没有mysql连接池的概念,而在开发中大多数框架也是直接使用了长连接的方式。如Thinkphp就是使用的长连接。对于并发较小的项目来说,长连接确实可以提高查询效率,php不用每次去与mysql服务器建立连接,只要某个php-cgi连接过mysql,那么本次访问结束后,php不会释放与mysql的连接。当下次请求过来的时候,php就可以复用之前的连接,从而消除了建立连接是的额外损耗。
举个栗子
假如有一台mysql服务器MA允许的最大连接数为50。有一台php-fpm服务器PA,PA常驻的php-cgi进程数量设置为100。

php搭建mysql连接池

  • 当并发量查询访问小于50的时候,php使用长连接不会有问题。
  • 当并发量查询大于50的时候,再使用长连接就会出现mysql连接数量不足。如果有60的并发查询访问,那么就会有10请求无法与mysql建立连接。(这里不考虑mysql设置连接等待队列back_log)
解决上面场景问题的思路如下
1、增加mysql的最大连接数

这种方法增加的数量有限,当超过某个数量时,查询效率与建立连接的效率都会大大折扣。具体与mysql服务器的硬件配置高低有关。

2、使用缓存技术,让查询不会直接冲击到db

使用redis、memcached做缓存层,减少与mysql的连接频率

3、使用mysql中间件

mycat(国内开源软件)、SMProxy(一款基于swoole的轻量连接池

4、使用主从数据库

读写分离。可部署多台slave服务器。服务器数量越多也就意味着你可建立的最大连接越多。

步入正题,搭建SMProxy连接池

必须安装php并且安装swoole扩展并把php添加到环境变量中。

1、下载SMProxy
2、修改SMProxy配置

SMProxy conf目录有两个配置文件,一个是database.json,用于配置mysql数据库信息。另一个是server.json用于配置连接池的一些信息

  • database.json
  • server.json
3、启动SMProxy
4、框架测试

我这里使用的是thinkphp5进行的测试

  • 修改databse.php的配置为SMProxy的server.json设置的信息
  • 测试查询

查询结果如下

本文地址:http://lianchengexpo.xrbh.cn/quote/6839.html    迅博思语资讯 http://lianchengexpo.xrbh.cn/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关行业动态
推荐行业动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号