一般脚本运行结束释放数据库连接.持久连接则是在脚本结束时并不会关闭连接,PHP将检查是否已经存在一个相同的持久连接,如果存在,就直接使用这个连接,如果不存在,就建立一个新的连接.
相同:相同的配置文件(用户名,密码,到相同主机的连接).
在目前流行的php作为apache模块的架构上,对于一个多进程的服务器,典型特征是有一个父进程和一组子进程协调运行,其中实际生成web页面的是子进程.每当客户端向父进程提出请求时,该请求被传给没有被占用的子进程,在开启了一个持久连接后,所有请求SQL服务的后继页面都能够重用这个已经建立的连接.
当web server 创建到数据库server 的连接耗费较高时,持久连接更有效.显而易见.
但是问题来了,假如数据库的连接只允许16个,这样当第17个连接过来的时候就无法成功建立.这个进程会一直试图连接,那么有一个线程将无法连接,这个时候脚本出现连接无法关闭的错误,无线循环等.
本文摘自http://php.net/manual/zh/features.persistent-connections.php
原文地址:http://8178481.blog.51cto.com/8168481/1650762