mysql_pconnect mysql_connect_mysql_pconnect和mysql_connect有什么区别呢

MySQL 数据库 php 手册上说主要有两个区别

1.不重复发出连接请求

2.mysql_close不起作用

第一点有点不明白。 那是不是我 mysql_connect 不再次发出请求 也不中途mysql_close 就和 mysql_ pconnect 一样了呢。

如果是这样

那我定义一个函数

function connect(){

static $connect_id;

if( !$connect_id )

$connect_id = mysql_connect("localhost","hao","hao");

return $connect_id;

}

外面调用 这个函数来连接数据库。 connect()

就不会出现重复发出连接请求啦。

那是不是和mysql_ pconnect 一样了呢

欢迎大家回答 谢谢

回复讨论(解决方案)

resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )

当你没有为 $new_link 指定true值时,他们的行为是一样的。同样的参数第二次调用 ,将不会建立新连接,而将返回已经打开的连接标识

那是不是我 mysql_connect 不再次发出请求也不中途mysql_close 就和 mysql_ pconnect 一样了呢。

不是!

数据库连接分为两个阶段

第一阶段:建立与数据库服务器的物理连接

第二阶段:登录数据库服务器,建立与数据库的业务链接

对于 mysql_connect, mysql_close 将切断这两个连接(php程序结束后会自动调用 mysql_close)

对于 mysql_pconnect,mysql_close 不起作用。php程序结束后自动切断到数据库的业务链接。而保留物理连接,准备复用

那是不是我 mysql_connect 不再次发出请求也不中途mysql_close 就和 mysql_ pconnect 一样了呢。

不是!

数据库连接分为两个阶段

第一阶段:建立与数据库服务器的物理连接

第二阶段:登录数据库服务器,建立与数据库的业务链接

对于 mysql_connect, mysql_close 将切断这两个连接(php程序结束后会自动调用 mysql_close)

对于 mysql_pconnect,mysql_close 不起作用。php程序结束后自动切断到数据库的业务链接。而保留物理连接,准备复用

版主 谢谢你的回答。 我还不怎么明白你指的mysql_pconnect复用。 请问可以跨脚本复用不。 比如A脚本用了mysql_pconnect ,然后在A脚本未执行完的时候开了B脚本。 那B脚本可以用到A脚本的连接,而不用再次连接数据库不。

mysql_pconnect 有哪些优势呢 我看到有些网上的数据库操作类; 没用这个。

不知道作用大不大呢。

数据库连接总是必要的

通常网络连接都比较慢,也就是说如果不切断到数据库的物理连接的话,下次访问可能就要快些(前提是上次连接时的网络通道可以复用)

长连接一般用在web服务与数据库服务不在同一台机器上的场合

像你描述的“在A脚本未执行完的时候开了B脚本”情况,是不能复用连接的,因为复用的前提是连接处于空闲状态

数据库连接总是必要的

通常网络连接都比较慢,也就是说如果不切断到数据库的物理连接的话,下次访问可能就要快些(前提是上次连接时的网络通道可以复用)

长连接一般用在web服务与数据库服务不在同一台机器上的场合

像你描述的“在A脚本未执行完的时候开了B脚本”情况,是不能复用连接的,因为复用的前提是连接处于空闲状态

谢谢版主 我大概明白了。

这句话我要再想一下为什么

长连接一般用在web服务与数据库服务不在同一台机器上的场合

前面已经说了,不在同一台机器,就是通过网络了

而网络不是给你一个人使用的,所以实际连接起来相对比较慢。因此保留物理连接(连上了就不放手)要划算些

而同在一台机及上时,因为不需要通过网络,所以比较快。相反,长连接反而因为来不及置为空闲状态,挤占了大量资源,导致数据库连不上

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值