[日常] MySQL数据库持久连接
程序员文章站
2022-10-04 19:47:10
证明: ......
2018年5月18日 记录: 数据库持久连接: 1.持久的数据库连接是指在脚本结束运行时不关闭的连接。当收到一个持久连接的请求时。php 将检查是否已经存在一个(前面已经开启的)相同的持久连接。如果存在,将直接使用这个连接;如果不存在,则建立一个新的连接。所谓“相同”的连接是指用相同的用户名和密码到相同主机的连接。 2.第一种方法是将 php 用作一个单独运行的语言解释器(cgi wapper)。在这种情况下,使用持久连接和非持久连接没有任何区别——因为php脚本本身的执行不是持久的。 3.把 php 用作多进程 web 服务器的一个模块,这种方法目前只适用于 apache,相同的客户端第二次向服务端提出请求时,它将有可能被一个不同的子进程来处理。在开启了一个持久连接后,所有请求 sql 服务的后继页面都能够重用这个已经建立的 sql server 连接。 4.在持久连接中使用数据表锁时,如果脚本不管什么原因无法释放该数据表锁,其随后使用相同连接的脚本将会被持久的阻塞,使得需要重新启动 httpd 服务或者数据库服务。 5.使用事务处理时,如果脚本在事务阻塞产生前结束,则该阻塞也会影响到使用相同连接的下一个脚本 6.程序使用持久连接(pdo::attr_persistent)访问数据库,则一个php-fpm工作进程对应一个到mysql的长连接. 请求结束后,php不会释放到mysql的连接,以便下次重用,这个过程对程序是透明的. 这可以看作是php-fpm维护的"数据库连接池". 7.非但不能节约mysql资源,反而会加剧数据库的负荷。 pdo持久化连接: $dbh = new pdo('mysql:host=localhost;dbname=test', $user, $pass, array( pdo::attr_persistent => true ));
证明:
上一篇: 经典好笑动物心中流泪
推荐阅读
-
详解MySQL数据库--多表查询--内连接,外连接,子查询,相关子查询
-
详解使用navicat连接远程linux mysql数据库出现10061未知故障
-
Spring Boot 与 Kotlin 使用JdbcTemplate连接MySQL数据库的方法
-
使用数据库客户端工具Oracle SQL Developer加载第三方驱动连接mysql的方法
-
Java对MySQL数据库进行连接、查询和修改操作方法
-
node连接数据库如何输出(前端js连接mysql数据库的方法)
-
mysql 远程连接数据库的方法集合
-
java连接mysql数据库代码(java连接数据库步骤)
-
解决php用mysql方式连接数据库出现Deprecated报错问题
-
连接数据库代码的步骤(java连接mysql数据库的代码)