swoole HTTP服务器中异步MySQL的示例分析

  介绍

这篇“swoole HTTP服务器中异步MySQL的示例分析”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“swoole HTTP服务器中异步MySQL的示例分析”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获、下面让我们一起来看看具体内容吧。

直接上代码:

& lt; ? php http 美元;=,new  swoole_http_server (“0.0.0.0",, 9501); HTTP→美元(& # 39;请求# 39;,,函数($请求,响应美元){   swoole_mysql1 美元,,,,=,new  Swoole \协同程序\ MySQL (),,,,, swoole_mysql2 美元;=,new  Swoole \协同程序\ MySQL(),,,,,美元swoole_mysql1→连接([,,,,,,,& # 39;主机# 39;,=祝辞,& # 39;127.0.0.1 # 39;,,,,,,,,,& # 39;港口# 39;,=祝辞,3306,,,,,,,,,& # 39;用户# 39;,=祝辞,& # 39;根# 39;,,,,,,,,,& # 39;密码# 39;,=祝辞,& # 39;根# 39;,,,,,,,,,& # 39;数据库# 39;,=祝辞,& # 39;swoole& # 39;,   ,,,),,,,,美元swoole_mysql2→连接([,,,,,,,& # 39;主机# 39;,=祝辞,& # 39;127.0.0.1 # 39;,,,,,,,,,& # 39;港口# 39;,=祝辞,3306,,,,,,,,,& # 39;用户# 39;,=祝辞,& # 39;根# 39;,,,,,,,,,& # 39;密码# 39;,=祝辞,& # 39;根# 39;,,,,,,,,,& # 39;数据库# 39;,=祝辞,& # 39;swoole& # 39;,   ,,,),,,,,res1 美元;=,美元swoole_mysql1→查询(& # 39;SELECT  *,得到data1 # 39;),,,,, res2 美元;=,美元swoole_mysql2→查询(& # 39;SELECT  *,得到data2 # 39;),,,,,美元反应→页眉(“Content-Type",,“text/html;, charset=utf-8"),,,,,反应→美元结束(“& lt; h2> Hello  Swoole只#“.count (res1美元).count(它)美元霸主地位;& lt;/h2>“);      });http→美元开始();

使用浏览器访问.北京://ip: 9501
异步MySQL可以不需要等待第一条查询完成后再执行第二条,在访问不同服务器,不同数据库,不同的表时效果比较明显。
对比同步MySQL查询代码:

& lt; ? php http 美元;=,new  swoole_http_server (“0.0.0.0",, 9501); http→美元(& # 39;请求# 39;,,函数($请求,响应美元){,,,swoole_mysql1 美元;=,mysqli_connect(& # 39; 127.0.0.1 # 39;,, & # 39;根# 39;,,& # 39;根# 39;,,& # 39;swoole& # 39;,, 3306),,,,, swoole_mysql2 美元;=,mysqli_connect(& # 39; 127.0.0.1 # 39;,, & # 39;根# 39;,,& # 39;根# 39;,,& # 39;swoole& # 39;,, 3306),,,,, res1 美元;=,美元swoole_mysql1→查询(& # 39;SELECT  *,得到data1 # 39;),,,,, res2 美元;=,美元swoole_mysql2→查询(& # 39;SELECT  *,得到data2 # 39;),,,,,美元反应→页眉(“Content-Type",,“text/html;, charset=utf-8"),,,,,反应→美元结束(“& lt; h2> Hello  Swoole只#“。美元res1→num_rows。$它→num_rows !”& lt;/h2>“);      });http→美元开始();

同步代码使用PHP原生方式查询数据。
放上两种查询方式的使用ab进行的性能测试:
ab - c 100 - n 1000 http://127.0.0.1:9501
异步查询:

Server 软件:,,,,,,,swoole-http-server   Server 主机名:,,,,,,,,127.0.0.1Server 端口:,,,,,,,,,,,,9501 document 路径:,,,,,,,,,,/Document 长度:,,,,,,,,30,bytesConcurrency 水平:,,,,,,100 Time  taken  for 测试:,,,1.477,secondsComplete 请求:,,,,,,1000 failed 请求:,,,,,,,,0 write 错误:,,,,,,,,,,,0 total 转移:,,,,,,193000,bytesHTML 转移:,,,,,,,30000,bytesRequests  per 第二:,,,,676.82,(#/秒),(意味着)Time  per 要求:,,,,,,,,147.749(女士),(平均)   Time  per 要求:,,,,,,,,1.477(女士),(意思是,across  all  concurrent 请求)   Transfer 率:,,,,,,,,,,127.57,(kb/秒),收到      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

swoole HTTP服务器中异步MySQL的示例分析