PHP 中 MySQL 数据库异步查询实现
通常一个web应用的性能瓶颈在数据库。因为,通常情况下php中mysql查询是串行的。也就是说,如果指定两条sql语句时,第二条sql语句会等到第一条sql语句执行完毕再去执行。这个时候,如果执行2条sql语句,每条执行时间为50ms,全部执行完毕可能需要100ms。既然,主要原因是sql的串行执行导致。那我们是不是可以改变执行方式来提高性能呢?答案是,可以的。我们可以通过异步执行的'方式来提高性能。
PHP 中 MySQL 数据库异步查询实现异步
如果通过异步的方式去执行,可能性能会有很大提升。如果是采用异步的方式,两条sql语句会并发执行,可能就需要60ms就可以执行完毕。
实现
mysqli + mysqlnd。php官方实现的mysqlnd中提供了异步查询的方法。分别是:
mysqlnd_async_query 发送查询请求
mysqlnd_reap_async_query 获取查询结果
这样就可以不必每次发送完查询请求后,一直阻塞等待查询结果了。
实现代码如下:
结语
mysql数据库对于每个查询请求都是单独启动一个线程进行处理。如果mysql服务器启动线程过多,必然会造成线程切换引起系统负载过高。如果在mysql数据库负载不高的情况下,使用异步查询还是不错的选择。
-
php统计数组元素个数的方法
PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的.风格有类似于C语言,被广泛地运用。下面是小编为大家搜索整理的php统计数组元素个数的方法,希望大家能有所收获,更多精彩内容请及时关注我们应届毕业生考试网!count():对数组中的元...
-
PHP数据类型之数组变量详解
导语:PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。下面我们来看看PHP数据类型之数组变量详解,希望对大家有所帮助。PHP中的数组实际上是一个有序图,是一种把values映射到keys的类型。一个数组实际上就...
-
PHP考试笔试题
用宝珠打扮自己,不如用知识充实自己。以下是小编为大家搜索整理的PHP考试笔试题,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!1、{PHP题目}标识符是变量的名称。PHP中的标识符用$+变量名来表示。标识符在PHP中遵循下列选项中的那些规则?()...
-
PHP学习10个基础知识总结
PHP学习过程中,必须要掌握基础的知识点,以下是小编为大家搜索整理的PHP学习10个基础知识总结,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!PHP10个小基础知识总结1,在HTML嵌入PHP脚本有三种办法:以下为引用的内容:<scriptlanguage="PHP">//嵌...