0

0

mysql_connect与mysql_pconnect的区别详解

php中文网

php中文网

发布时间:2016-05-25 16:37:44

|

2124人浏览过

|

来源于php中文网

原创

在mysql中我们会看到有两种常用的数据库连接模式,一种是长久连接,另一各是页面访问完之后就断了连接,下面我来分别介绍mysql_connect与mysql_pconnect的区别,有需要了解的朋友可参考.

PHP mysql_pconnect

mysql_pconnect() 函数打开一个到 MySQL 服务器的持久连接.

mysql_pconnect() 和 mysql_connect() 非常相似,但有两个主要区别.

1.当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。

2.其次,当脚本执行完毕后到 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 mysql_connect

mysql_connect() 函数打开非持久的 MySQL 连接.

语法:mysql_connect(server,user,pwd,newlink,clientflag)

参数 描述

server 可选,规定要连接的服务器.

可以包括端口号,例如 "hostname:port",或者到本地套接字的路径,例如对于 localhost 的 ":/path/to/socket"。

Bg Eraser
Bg Eraser

图片物体抹除和清理

下载

如果 PHP 指令 mysql.default_host 未定义(默认情况),则默认值是 'localhost:3306'.

user 可选,用户名,默认值是服务器进程所有者的用户名.

pwd 可选,密码,默认值是空密码.

newlink 可选,如果用同样的参数第二次调用 mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识,参数 new_link 改变此行为并使 mysql_connect() 总是打开新的连接,甚至当 mysql_connect() 曾在前面被用同样的参数调用过.

clientflag 可选。client_flags 参数可以是以下常量的组合:

•MYSQL_CLIENT_SSL - 使用 SSL 加密

•MYSQL_CLIENT_COMPRESS - 使用压缩协议

•MYSQL_CLIENT_IGNORE_SPACE - 允许函数名后的间隔

•MYSQL_CLIENT_INTERACTIVE - 允许关闭连接之前的交互超时非活动时间

返回值:如果成功,则返回一个 MySQL 连接标识,失败则返回 FALSE.

提示和注释

注释:脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用 mysql_close() 关闭了.

提示:要创建一个持久连接,请使用 mysql_pconnect() 函数.

例子,代码如下:

mysql_connect与mysql_pconnect的区别

这俩函数用法上差不久不多,网上有说应当用pconnect的,pconnect是个好器材,也有视pconnect如洪水猛兽的,果断不让用pconnect的,也有立场模糊不清的,那这个器材到底如何呢?

永远链接并不是说,办事器打开了一个连接,然后所有的人都共享这个链接,永远连接一样是每个客户端来就打开一个连接,有200人接见就有200个连接,其实mysql_pconnect()本身并没有做太多的处理惩罚,它独一做的只是在php运行停止后不主动close掉mysql的连接.

在php经cgi体式格式运行时pconnect和connect是根蒂根基没有区此外,因为cgi体式格式是每一个php接见起一个过程,接见停止掉队程也就停止了,资料也全开释了.

当php以apache模块体式格式运行时,因为apache有应用过程池,一个httpd过程停止后会被放回过程池,这也就使得用pconnect打开的的那个mysql连接资料不被开释,于是有下一个连接恳求时就可以被复用.这就使得在apache并发接见量不大的时辰,因为应用了pconnect,php节俭了反复连接db的时候,使得接见速度加快.

这应当是斗劲好懂得的,然则在apache并发接见量大的时辰,若是应用pconnect,会因为之前的一些httpd过程占用的mysql连接没有close,则可能会因为mysql已经达到最大连接着,使得之后的一些恳求永远得不到满足.若mysql最大连接数设为500,而apache的最大同时接见数设为2000,假设所有接见都邑请求接见db,并且操纵时候会斗劲长,当前500个恳求的httpd都没有停止的时辰,之后的httd过程都是无法连接到mysql的(因已经达到mysql最大连接 数),只有当前500个httpd过程停止或被复用才可以连接获得了mysql.

当db操纵错杂,耗时较长时,因httpd会fork很多并发过程处理惩罚,而先产生的httpd过程不开释db连接,使得后产生的httpd过程无法连上db. 因为如许没有复用其它httpd过程的mysql连接,于是会就产生很多连接超时,在并发接见量不高时,应用pconnect可以简单进步接见速度,但在并发量增大后,是否再应用pconnect就要见地度员的选择了.

就我小我认为,php如今对mysql的连接并没有真正用到连接池,pconnect也只是相当于借了apache的过程池来用,所以在并发接见量大的时辰pconnect并不克不及很好的进步接见db效力.

在实际的应用中,用mysql_pconnect的话,每次刷新和恳求新的页面都斗劲快,而用mysql_connect的话,每次刷新都要从头恳求,当数据库连接斗劲慢的时辰,就能看出差别了。当你的数据库连接斗劲慢,DB操纵不是很错杂,并且你的法度足够自负,不会产存亡锁的时辰,或者你拥有对办事器的把握权,满足以上四个前提中的随便率性两个,那就可以用pconnect.

pconnect不消在脚本里封闭,可以在mysql中设置lifetime,也可以写shell按期扫描,kill掉休眠过长的连接,一句话总结:要用好pconnect,不仅仅是php脚本的事,还关系到数据库和办事器的设置.

本文地址:

转载随意,但请附上文章地址:-)

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

52

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

25

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

10

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

7

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

413

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

232

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

197

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

150

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
JavaScript 基础加强视频教程
JavaScript 基础加强视频教程

共73课时 | 17.1万人学习

Git工具使用小知识
Git工具使用小知识

共38课时 | 17.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号