当前位置: 首页 > news >正文

企业年金个人和单位的缴费比例/seo查询网站

企业年金个人和单位的缴费比例,seo查询网站,聚合广告联盟,新网站该如何做网站优化呢php的数据库连接池一直以来都是一个难题,很多从php语言转向java的项目,大多数原因可能都是因为java有更好的连接池实现。php的mysql扩展提供了长连接的API,但在php机器数量较多,规模较大的情况下,mysql_pconnect非但不…

php的数据库连接池一直以来都是一个难题,很多从php语言转向java的项目,大多数原因可能都是因为java有更好的连接池实现。php的mysql扩展提供了长连接的API,但在php机器数量较多,规模较大的情况下,mysql_pconnect非但不能节约mysql资源,反而会加剧数据库的负荷。

假设有100台php的应用服务器,每个机器需要启动100个apache或fpm工作进程,那每个进程都会产生一个长连接到mysql。这一共会产生1万个mysql连接。而mysql是每个连接会占用1个线程。那mysql就需要创建1万个线程,这样大量的系统资源被浪费在线程间上下文切换上。而你的业务代码中并不是所有地方都在做数据库操作,所以这个就是浪费的。

连接池就不同了,100个worker进程,公用10个数据库连接即可,当操作完数据库后,立即释放资源给其他worker进程。这样就算有100台php的服务器,那也只会创建1000个mysql的连接,完全可以接受的。

以前确实没有好的办法来解决此问题的,看了swoole官网介绍,有了swoole扩展,利用swoole提供的task功能可以很方便做出一个连接池来。

比如类似这样:

$serv = new swoole_server("127.0.0.1", 9508);$serv->set(array('worker_num' => 100,

'task_worker_num' => 10, //MySQL连接的数量

));function my_onReceive($serv, $fd, $from_id, $data)

{//taskwait就是投递一条任务,这里直接传递SQL语句了

//然后阻塞等待SQL完成

$result = $serv->taskwait("show tables");if ($result !== false) {list($status, $db_res) = explode(':', $result, 2);if ($status == 'OK') {//数据库操作成功了,执行业务逻辑代码,这里就自动释放掉MySQL连接的占用

$serv->send($fd, var_export(unserialize($db_res), true) . "\n");

}else{$serv->send($fd, $db_res);

}return;

}else{$serv->send($fd, "Error. Task timeout\n");

}

}function my_onTask($serv, $task_id, $from_id, $sql)

{static $link = null;if ($link == null) {$link = mysqli_connect("127.0.0.1", "root", "root", "test");if (!$link) {$link = null;$serv->finish("ER:" . mysqli_error($link));return;

}

}$result = $link->query($sql);if (!$result) {$serv->finish("ER:" . mysqli_error($link));return;

}$data = $result->fetch_all(MYSQLI_ASSOC);$serv->finish("OK:" . serialize($data));

}function my_onFinish($serv, $data)

{echo "AsyncTask Finish:Connect.PID=" . posix_getpid() . PHP_EOL;

}$serv->on('Receive', 'my_onReceive');$serv->on('Task', 'my_onTask');$serv->on('Finish', 'my_onFinish');$serv->start();

这里task_worker_num就是要启用的数据库连接池数量,worker进程为100时,连接池数量为10就可以设置为worker_num = 100, task_worker_num = 10。

更多参考:https://wiki.swoole.com/wiki/index/prid-2 swoole框架,目前我还在处于菜鸟学习阶段,有更好的实战经验我再笔记下来。。。

http://www.jmfq.cn/news/5275675.html

相关文章:

  • 河北远策网站建设/怎么开一个网站平台
  • 网页设计与网站建设选择题/网络推广十大平台
  • 网站开发用php还是js/google推广seo
  • 卫生局网站模板/企业宣传软文范例
  • 网站跳出率如何计算/中国seo第一人
  • 鞍山做网站企业/seo零基础教学视频
  • wordpress附件/东莞seo计费
  • 设计网站公司 露 联湖南岚鸿/软件开发公司排名
  • 自己动手做导航网站/软文媒体发稿平台
  • asp无刷新网站模板/今日新闻最新
  • 广州 科技网站建设公司/文章推广平台
  • 泰安口碑好的企业建站公司/成都官网seo服务
  • 如何做公司简介介绍/石家庄百度seo
  • 做网站还有价值吗/龙岗网络公司
  • 新乡做网站的/优化seo深圳
  • 做平面常用的网站/互联网推广渠道有哪些
  • 公司网站建设浩森宇特/云南seo公司
  • 网站建设课设心得体会/国家优化防控措施
  • 高端网站建设模板/百度竞价是什么
  • 创世网站网络建设/网站推广软件排名
  • 关于网站的毕业设计/链接点击量软件
  • cms系统管理/seo提升排名
  • 北京谷歌seo/上海关键词排名优化怎样
  • 养生网站源码下载/长春百度推广电话
  • web网页设计模板代码/seo发外链工具
  • 昌平网站建设推广优化seo/外贸网站推广费用
  • 南昌 网站/自己创建网站
  • 太原网站建设优化/搜一搜
  • 马云不会代码怎么做的网站/seo是什么车
  • 如何给网站做优化代码/广州优化疫情防控举措