V5版本 redis 和 http 已经走协程了 请问mysql协程版会开发吗??
假如mysql协程版开发出来了, 是不是workerman处理http请求的时候就可以直接开协程来处理请求啦??
现在 http请求已经可以用协程了,我都用上了,效果杠杠的
什么个使用方法?
你看workerman http异步 里面就有协程用法
workerman官方预计不会出协程版MySQL客户端。原因如下:
PHP实现MySQL客户端性能差 PHP层面实现MySQL客户端需要使用PHP解析MySQL协议,PHP解析协议过程中相比PDO会消耗更多的CPU,导致整体性能不如直接使用阻塞PDO
PHP MySQL连接池缺陷 为了发挥协程优势需要使用MySQL连接池。而PHP是多进程单线程的,多进程间无法复用MYSQL连接池,需要每个进程开启MYSQL连接池。例如64个进程,每个进程开启一个10个连接的MySQL连接池,一台服务器的总连接数可能达到640个,很容易把MySQL连接数占满。这种连接池机制会导致系统扩展性很差。
MySQL连接数越多,性能越差 连接池机制会导致有更多的空闲连接,而MySQL连接数越多,性能越差,即使其中大部分是空闲连接。这就导致很多使用了MySQL连接池的应用性能不如直接用PDO阻塞调用的原因。
引入协程会让应用变得复杂 引入协程会导致应用开发变得复杂,需要时刻考虑上下文问题,一些组件需要改造才能使用,例如数据库组件。webman一直体长简单、稳定、高性能。引入PHP实现的MySQL协程后性能肯定不会提高,简单和稳定性也受到挑战。
第三方协程客户端 预计会有第三方开发出基于fiber的MySQL协程客户端,到时候应该可以直接在webman中使用。 对于MySQL协程情有独钟的可以在webman中开启swoole驱动,开启后可以使用swoole的协程,注意使用swoole协程后就无法使用laravel以及thinkphp的orm,因为他们是不支持协程的。
那如果开启swoole驱动,orm和redis要使用什么包那
那就去用swoole的Hyperf
对,喜欢协程的可以用Hyperf
谢谢讲解!! 请问这个协程除了redis 和 http 以后还会添加其他应用吗?
还有一个延迟 Timer::sleep();
老大太热心了 谢谢👍
协程好不好?那肯定好啊!
协程是不是解决一切问题的灵丹妙药?那肯定不是!
现在 http请求已经可以用协程了,我都用上了,效果杠杠的
什么个使用方法?
你看workerman http异步 里面就有协程用法
workerman官方预计不会出协程版MySQL客户端。原因如下:
PHP实现MySQL客户端性能差
PHP层面实现MySQL客户端需要使用PHP解析MySQL协议,PHP解析协议过程中相比PDO会消耗更多的CPU,导致整体性能不如直接使用阻塞PDO
PHP MySQL连接池缺陷
为了发挥协程优势需要使用MySQL连接池。而PHP是多进程单线程的,多进程间无法复用MYSQL连接池,需要每个进程开启MYSQL连接池。例如64个进程,每个进程开启一个10个连接的MySQL连接池,一台服务器的总连接数可能达到640个,很容易把MySQL连接数占满。这种连接池机制会导致系统扩展性很差。
MySQL连接数越多,性能越差
连接池机制会导致有更多的空闲连接,而MySQL连接数越多,性能越差,即使其中大部分是空闲连接。这就导致很多使用了MySQL连接池的应用性能不如直接用PDO阻塞调用的原因。
引入协程会让应用变得复杂
引入协程会导致应用开发变得复杂,需要时刻考虑上下文问题,一些组件需要改造才能使用,例如数据库组件。webman一直体长简单、稳定、高性能。引入PHP实现的MySQL协程后性能肯定不会提高,简单和稳定性也受到挑战。
第三方协程客户端
预计会有第三方开发出基于fiber的MySQL协程客户端,到时候应该可以直接在webman中使用。
对于MySQL协程情有独钟的可以在webman中开启swoole驱动,开启后可以使用swoole的协程,注意使用swoole协程后就无法使用laravel以及thinkphp的orm,因为他们是不支持协程的。
那如果开启swoole驱动,orm和redis要使用什么包那
那就去用swoole的Hyperf
对,喜欢协程的可以用Hyperf
谢谢讲解!! 请问这个协程除了redis 和 http 以后还会添加其他应用吗?
还有一个延迟 Timer::sleep();
老大太热心了 谢谢👍
协程好不好?那肯定好啊!
协程是不是解决一切问题的灵丹妙药?那肯定不是!