php连接mysql时是否有保持连接的办法
新人不太懂php和mysql.在进行使用的时候,有个困惑.就是我使用php连接数据库的话,代码写在一个php文件里面.开始和结尾肯定都放上连接与断开数据库.但是我有个疑问...
新人不太懂php和mysql.在进行使用的时候,有个困惑.就是我使用php连接数据库的话,代码写在一个php文件里面.开始和结尾肯定都放上连接与断开数据库.但是我有个疑问.就是这个网页如果不断的调用,那么等于是不断的连接又断开.这样是不是非常没效率,又浪费资源?有没有方法,保持数据库的连接.然后这个页面进行频繁调用结束后,再断开连接呢?求指点.
展开
3个回答
展开全部
如果想持久连接. 可以使用 mysql_pconnect()
持久连接确实比每次都连接效率要高
但有个局限性. 一般数据库服务器的并发连接数是有限制的.
在持久连接模式下, 每个php进程, 都单独保持一个数据库连接,
如果数据库连接限制为 16 , 当有第17个连接请求来的时候,就会出现无法处理的情况
非持久连接的特性使的连接资源及时释放,就可以大大的避免连接数的问题(当然在高并发情况下 , 还是有可能发生的)
非持久连接的效率问题... 可以通过增加高速缓存层解决 (针对一些时效性要求不太高的情况)
缓存的增加, 能极大的减少数据库访问.
总结: 持久连接虽然效率高, 但会存在局限性. 同时维护也比较麻烦.
非持久连接效率低些, 但可以通过缓存解决.而且维护成本很低,
ps: 目前的大多数开源系统都是使用非持久连接.
持久连接确实比每次都连接效率要高
但有个局限性. 一般数据库服务器的并发连接数是有限制的.
在持久连接模式下, 每个php进程, 都单独保持一个数据库连接,
如果数据库连接限制为 16 , 当有第17个连接请求来的时候,就会出现无法处理的情况
非持久连接的特性使的连接资源及时释放,就可以大大的避免连接数的问题(当然在高并发情况下 , 还是有可能发生的)
非持久连接的效率问题... 可以通过增加高速缓存层解决 (针对一些时效性要求不太高的情况)
缓存的增加, 能极大的减少数据库访问.
总结: 持久连接虽然效率高, 但会存在局限性. 同时维护也比较麻烦.
非持久连接效率低些, 但可以通过缓存解决.而且维护成本很低,
ps: 目前的大多数开源系统都是使用非持久连接.
追问
前辈能不能再指点下,高速缓存是个什么概念?是php里面可以定义的?还是在其它地方定义的?求指点.
追答
缓存层就是把数据存放在文件或内存中 .
(读内存比读硬盘要快的多,高速缓存就是这个道理 , 至于文件缓存, 也比数据库来的快)
可以通过一些软件(memcache , apc , redis,mongoDB等)
来存放数据库查询出来的结果.
这样下次用的时候,
就可以从缓存里获取,
从而减少数据库的访问 以提高效率.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的频繁调用是在1秒内的上千万次操作吗?如果不是就不算频繁。(仅仅打个比方)
一般数据库都会有连接限制的,
而你查找的时候和上传文件的时候所用的并不是同一个连接。留着也没用,不如关了。
一般数据库都会有连接限制的,
而你查找的时候和上传文件的时候所用的并不是同一个连接。留着也没用,不如关了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询