视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql_connectv/smysql_pconnect_MySQL
2020-11-09 19:48:17 责编:小采
文档


当需要使用PHP连接MySQL数据库的时候,会发现有两种数据库连接函数:mysql_connect()和mysql_pconnect()。

1、mysql_connect()

在脚本开始的时候,mysql_connect()会创建一个新的连接,脚本结束的时候就会关闭连接。脚本每一次执行,它都会创建一个新的连接。

2、mysql_pconnect()

当使用mysql_pconnect()连接数据库时,它首先会判断是否已经存在了数据库连接,如果存在,就会利用先用的资源ID,反之,就会创建一个新的连接。

在创建连接之后,函数返回资源ID(如果有)。当脚本再次调用的时候,它并不会创建新的连接。当然,脚本结束的时候,也不会关闭连接。这称之为持久连接。

但是,使用mysql_pconnect()时,需要对服务器配置做一下微调,譬如连接数,超时连接,以及处理空连接等。

3、怎么使用这两个函数

如果你的应用有很大流量,应该使用mysql_pconnect()函数,反之考虑mysql_connect()函数。

如果PHP和MySQL在同一台服务器上或者在本地网络,连接次数是可以忽略的,因为无论在哪种情况之下,持久连接都没有优势可言。

4、使用mysql_pconnect()应该留意的事

一般来说,当你锁定一个表时,连接关闭之后是就自动解锁了。但由于持久连接不关闭,任何你不小心锁定的表仍然会保持锁定的状态,唯一解锁的办法就是等待连接超时或者手动杀死进程。在进行事物处理时也会造成这个问题。

同样,临时表在连接关闭之后也会被删除。但由于持久连接不关闭,临时表就不再是临时表了。如果你完成需求后不删除临时表,它将作为一个新的客户端连接,并且是对于同一个连接。在设置Session变量的时候,会造成同样的问题。

在Apache上使用持久连接的效果并不会很好。当Apache收到客户端的一个请求时,会打开一个新的数据库连接,而不是利用已经存在持久连接去打开数据库,这将导致很多空闲进程、浪费资源,当达到最大连接数时,还是造成未知错误。

下载本文
显示全文
专题