老师,关于异步mysql的一些问题想询问一下

来源:5-5 异步Mysql详解(上)

ericdemon

2019-09-17

singwa老师,在平常的业务逻辑当中,前台基本都会用redis的string类型的有效时间缓存来减少对数据库的IO消耗
但是看了今天swoole对于异步mysql的操作有一些小小的疑惑,

  1. 因为在正常的业务逻辑上,计时器的操作会是redis的工作,及时是同步到数据库,这其中的逻辑也是异步队列的形式来操作的,那这样的话mysql的异步不就没有得到伸展了吗?
  2. 基本上的时候都是需要立刻查询后返回结果,返回对应的数据内容给前端用于数据的展示,如果做异步的话不就会导致数据不能及时拿到了吗?

最早接触到异步这个概念的时候是在前端的jQuery中的ajax方法,在工作中也用到了它,但是在后端服务上的异步我是第一次接触,有点不解为什么要去做这样的事情,所以想来咨询一下singwa老师,

写回答

1回答

singwa

2019-10-22

第一: 这个地方的异步和js的ajax异步  不一样

第二: 如果您在查询 多次数据的时候 可以用异步 ,比如您 PHP代码中需要查询 mysql表中的数据,然后还要查询redis库里面的数据,如果按照正常的逻辑


$mysqlResult = db::find(1); //  查询mysql耗时 假设200ms

$redis = $redis->get("abc"); // 查询redis耗时 假设 100ms 


那么按照传统的PHP, 这两个代码循序执行 总耗时再 300ms.

但是如果这两个地方异步处理的话, 只需要200ms (按最大的)就可以全部返回(mysql 200ms返回, redis 100ms返回) 整体上200ms 耗时。 这样就可以节省了很多时间开销。

希望老师的回答能帮助到您。

0
0

Swoole入门到实战打造高性能赛事直播平台

swoole创始人推荐,借助Swoole打造高性能直播平台

2228 学习 · 1062 问题

查看课程