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的示例分析”这一关键问题有了一定的理解,具体使用情况还需要大家自己动手实验使用过才能领会,快去试试吧,如果想阅读更多相关知识点的文章,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
php如何让Swoole/Pool进程池实现Redis持久连接
php如何让Swoole/Pool进程池实现Redis持久连接本篇...
-
php进阶到架构之swoole系列教程(一)windows安装swoole
-
Swoole就能实现高性能HTTP服务器
-
在linux下添加PHP扩展通讯swoole的安装
-
小编带你快速入门swoole框架
swoole有两个部分。一个是PHP扩展,用C开发的,这是核心。另一个是框架,像yii、TP、Laravel一样,是PHP代码...
-
php引用计数基本知识,划重点要考的
-
php有哪些运行环境?每个都有不同的特点,适合不同的系统
-
使用 Swoole 来加速你的 Laravel 应用
-
Swoole 5.0 不再使用 PSR-0 下划线风格的类名
Swoole在1.x–4.x版本中同时提供了PSR-0规范的下划线风格类名和PSR-4的命名空间风格。目前PS...
-
thinkphp 6.0 swoole扩展websocket使用教程