如果是访问量大,几乎一直要用到连接的话,当然是PCCONNECT好啦.光是省下创建连接的时间都赚回来了
警告
使用持久连接需要调整一些 Apache 和 MySQL 的配置以使不会超出 MySQL 所允许的连接数目。
mysql_pconnect打开的连接不会关闭(即使调用mysql_close也不会关闭),类似于连接缓冲池,如果下次有来自于同一个机器的同一个用户名对同一个数据库的连接,php会自动使用上次已经建立的连接,而不需要再重新建立一个。
这样的好处是省去了每次与数据库建立连接的开销,坏处是需要浪费一些内存,占用一些连接,所以要把mysql的max_connections参数改大一点。
- Shenzhen Post- Visit Shenzhen, Breaking News, Shenzhen Travel Guide
永久的数据库连接是指在您的脚本结束运行时不关闭的连接。当收到一个永久连接的请求时。PHP
将检查是否已经存在一个(前面已经开启的)相同的永久连接。如果存在,将直接使用这个连接;如果不存在,则建立一个新的连接。所谓“相同”的连接是指用相
同的用户名和密码到相同主机的连接。
跟服务器安装方式有关的。如果你是cgi安装方式。pconnection永远也不会生效。长连接最大的缺点就是万一一个用户锁死,当前进程就永久锁死了。假如你在apache里的设置是进程永不销毁的话就………………
mysql_pconnect() 和 mysql_connect() 非常相似,但有两个主要区别。
首先,当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
其次,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的连接)。
可选参数 client_flags 自 PHP 4.3.0 版起可用。
永久的数据库连接是指在脚本结束运行时不关闭的连接。当收到一个永久连接的请求时。PHP
将检查是否已经存在一个(前面已经开启的)相同的永久连接。如果存在,将直接使用这个连接;如果不存在,则建立一个新的连接。所谓“相同”的连接是指用相
同的用户名和密码到相同主机的连接。
对 web 服务器的工作和分布负载没有完全理解的读者可能会错误地理解永久连接的作用。特别的,永久连接不会在相同的连接上提供建立“用户会话”的能力,也不提供有效建立事务的能力。实际上,从严格意义上来讲,永久连接不会提供任何非永久连接无法提供的特殊功能。
定义和用法
mysql_pconnect() 函数打开一个到 MySQL 服务器的持久连接。
mysql_pconnect() 和 mysql_connect() 非常相似,但有两个主要区别:
- 当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
- 其次,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的连接)。
语法
mysql_pconnect(server,user,pwd,clientflag)
参数 |
描述 |
server |
可选。规定要连接的服务器。
可以包括端口号,例如 "hostname:port",或者到本地套接字的路径,例如对于 localhost 的 ":/path/to/socket"。
如果 PHP 指令 mysql.default_host 未定义(默认情况),则默认值是 'localhost:3306'。
|
user |
可选。用户名。默认值是服务器进程所有者的用户名。 |
pwd |
可选。密码。默认值是空密码。 |
clientflag |
可选。client_flags 参数可以是以下常量的组合:
- MYSQL_CLIENT_SSL - 使用 SSL 加密
- MYSQL_CLIENT_COMPRESS - 使用压缩协议
- MYSQL_CLIENT_IGNORE_SPACE - 允许函数名后的间隔
- MYSQL_CLIENT_INTERACTIVE - 允许关闭连接之前的交互超时非活动时间
|
返回值
如果成功,则返回一个 MySQL 持久连接标识符,出错则返回 FALSE。
提示和注释
注释:可选参数 clientflag 自 PHP 4.3.0 版起可用。
提示:要创建一个非持久连接,请使用 mysql_connect() 函数。
例子
<?php
$con = mysql_pconnect("localhost","mysql_user","mysql_pwd")
;
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
?>