讲解swoole HTTP服务器中异步MySQL

讲解swoole HTTP服务器中异步MySQL

还是直接上代码:

on('request', function($request, $response){    $swoole_mysql1 = new SwooleCoroutineMySQL();    $swoole_mysql2 = new SwooleCoroutineMySQL();    $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 * FROM data1');    $res2 = $swoole_mysql2->query('SELECT * FROM data2');    $response->header("Content-Type", "text/html; charset=utf-8");    $response->end("

Hello Swoole. #".count($res1).count($res2)."

");});$http->start();

推荐(免费):swoole

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

帮衣帮-AI服装设计 帮衣帮-AI服装设计

AI服装设计神器,AI生成印花、虚拟试衣、面料替换

帮衣帮-AI服装设计 106 查看详情 帮衣帮-AI服装设计

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 * FROM data1');    $res2 = $swoole_mysql2->query('SELECT * FROM data2');    $response->header("Content-Type", "text/html; charset=utf-8");    $response->end("

Hello Swoole. #".$res1->num_rows.$res2->num_rows."

");});$http->start();

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

Server Software:        swoole-http-serverServer Hostname:        127.0.0.1Server Port:            9501Document Path:          /Document Length:        30 bytesConcurrency Level:      100Time taken for tests:   1.477 secondsComplete requests:      1000Failed requests:        0Write errors:           0Total transferred:      193000 bytesHTML transferred:       30000 bytesRequests per second:    676.82 [#/sec] (mean)Time per request:       147.749 [ms] (mean)Time per request:       1.477 [ms] (mean, across all concurrent requests)Transfer rate:          127.57 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    1   1.8      0       7Processing:     4  140  24.0    145     156Waiting:        0  140  24.1    145     156Total:          7  140  22.6    145     160Percentage of the requests served within a certain time (ms)  50%    145  66%    146  75%    148  80%    148  90%    150  95%    152  98%    153  99%    154 100%    160 (longest request)

同步查询:

Server Software:        swoole-http-serverServer Hostname:        127.0.0.1Server Port:            9501Document Path:          /Document Length:        30 bytesConcurrency Level:      100Time taken for tests:   2.765 secondsComplete requests:      1000Failed requests:        0Write errors:           0Total transferred:      193000 bytesHTML transferred:       30000 bytesRequests per second:    361.67 [#/sec] (mean)Time per request:       276.493 [ms] (mean)Time per request:       2.765 [ms] (mean, across all concurrent requests)Transfer rate:          68.17 [Kbytes/sec] receivedConnection Times (ms)              min  mean[+/-sd] median   maxConnect:        0    0   0.4      0       2Processing:     4  262  48.5    272     295Waiting:        4  262  48.5    272     295Total:          6  262  48.2    272     295Percentage of the requests served within a certain time (ms)  50%    272  66%    278  75%    281  80%    284  90%    287  95%    291  98%    293  99%    294 100%    295 (longest request)

以上就是讲解swoole HTTP服务器中异步MySQL的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/232339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
sublime如何安装package control
上一篇 2025年11月3日 21:39:48
UC浏览器视频解析失败怎么办_UC浏览器在线视频播放错误解决方法
下一篇 2025年11月3日 21:39:56

相关推荐

发表回复

登录后才能评论
关注微信