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

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

直接上代码:

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

<?php$http=newswoole_http_server("0.0.0.0",9501);$http->on('request',function($request,$response){
$swoole_mysql1=newSwoole\Coroutine\MySQL();$swoole_mysql2=newSwoole\Coroutine\MySQL();$swoole_mysql1->connect(['host'=>'127.0.0.1','port'=>3306,'user'=>'root','password'=>'root','database'=>'swoole',
]);$swoole_mysql2->connect(['host'=>'127.0.0.1','port'=>3306,'user'=>'root','password'=>'root','database'=>'swoole',
]);$res1=$swoole_mysql1->query('SELECT*FROMdata1');$res2=$swoole_mysql2->query('SELECT*FROMdata2');$response->header("Content-Type","text/html;charset=utf-8");$response->end("<h2>HelloSwoole.#".count($res1).count($res2)."</h2>");

});$http->start();

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

<?php$http=newswoole_http_server("0.0.0.0",9501);$http->on('request',function($request,$response){$swoole_mysql1=mysqli_connect('127.0.0.1','root','root','swoole',3306);$swoole_mysql2=mysqli_connect('127.0.0.1','root','root','swoole',3306);$res1=$swoole_mysql1->query('SELECT*FROMdata1');$res2=$swoole_mysql2->query('SELECT*FROMdata2');$response->header("Content-Type","text/html;charset=utf-8");$response->end("<h2>HelloSwoole.#".$res1->num_rows.$res2->num_rows."</h2>");

});$http->start();

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

ServerSoftware:swoole-http-server
ServerHostname:127.0.0.1ServerPort:9501DocumentPath:/
DocumentLength:30bytesConcurrencyLevel:100Timetakenfortests:1.477secondsCompleterequests:1000Failedrequests:0Writeerrors:0Totaltransferred:193000bytesHTMLtransferred:30000bytesRequestspersecond:676.82[#/sec](mean)Timeperrequest:147.749[ms](mean)
Timeperrequest:1.477[ms](mean,acrossallconcurrentrequests)
Transferrate:127.57[Kbytes/sec]received

ConnectionTimes(ms)minmean[+/-sd]medianmaxConnect:011.807Processing:414024.0145156Waiting:014024.1145156Total:714022.6145160Percentageoftherequestsservedwithinacertaintime(ms)50%145
66%146
75%148
80%148
90%150
95%152
98%153
99%154
100%160(longestrequest)

同步查询:

ServerSoftware:swoole-http-server
ServerHostname:127.0.0.1ServerPort:9501DocumentPath:/
DocumentLength:30bytesConcurrencyLevel:100Timetakenfortests:2.765secondsCompleterequests:1000Failedrequests:0Writeerrors:0Totaltransferred:193000bytesHTMLtransferred:30000bytesRequestspersecond:361.67[#/sec](mean)Timeperrequest:276.493[ms](mean)
Timeperrequest:2.765[ms](mean,acrossallconcurrentrequests)
Transferrate:68.17[Kbytes/sec]received

ConnectionTimes(ms)minmean[+/-sd]medianmaxConnect:000.402Processing:426248.5272295Waiting:426248.5272295Total:626248.2272295Percentageoftherequestsservedwithinacertaintime(ms)50%272
66%278
75%281
80%284
90%287
95%291
98%293
99%294
100%295(longestrequest)

感谢你的阅读,希望你对“swoole HTTP服务器中异步MySQL的示例分析”这一关键问题有了一定的理解,具体使用情况还需要大家自己动手实验使用过才能领会,快去试试吧,如果想阅读更多相关知识点的文章,欢迎关注恰卡编程网行业资讯频道!

发布于 2021-03-17 20:52:50
收藏
分享
海报
0 条评论
171
上一篇:JavaScript中从原型到原型链的示例分析 下一篇:php中的转义函数是什么
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码