未使用的mysql连接会降低脚本速度吗?
作者:互联网
我正在为我的网站编写API,以及一个相当大的类来处理所有API请求.
网站上的大多数页面(如果不是全部页面)将在加载时向api发送至少一个请求.该网站最重要的优先事项是效率,因此服务器处理非常快.
因此,关于类和某些PHP函数,我正在寻求一点建议.
首先,看起来我正在编写的类可能最终会变成大约3000行代码.如果在每个页面上初始化此函数,而忽略了每个页面仅使用该类中一个或两个函数的事实,这会使API变慢吗?我应该为每个类方法查看带有扩展名的单独文件吗?
其次,我目前在目录中的单独文件中拥有与各个数据库的所有连接.每个连接中都有函数mysql_pconnect().目前,我仅在需要时才需要这些文件.因此,如果该方法需要与x数据库的连接,则只需将require(connection …)放入该方法中.将文件包含在类中是否不好?
我问,因为唯一的解决方案是需要页面顶部的所有连接,以便类可以访问它们而无需为每个方法使用它们.这就是为什么我想知道一次拥有多个连接(即使不使用它们)是否会对服务器造成负担?
因此,确实存在三个问题:
>即使仅使用一种类方法,在每页开始处启动大类也会减慢脚本运行时间吗?这就是为什么人们使用“阶级延伸阶级”吗?
>在一个类中“ require()”文件是否不好?
>未使用的与mysql数据库的连接会减慢脚本的运行时间吗?
解决方法:
不,一个未使用的MySQL连接不会占用很多(如果有的话)cpu时间,尽管它将占用一些内存来处理必须在每个连接基础上维护的各种“状态”位.
但是,请注意,MySQL的连接协议实际上是“轻量级”的.维护持久连接池听起来很有吸引力,但是无论如何建立新连接的成本已经非常低.
持久连接是解决连接开销的快速解决方案,但是确实带来了问题.最糟糕的一个是被废弃的连接可能会使连接处于不确定状态(正在进行的事务,更改的服务器变量/配置等),并且您可以很容易地创建无意的死锁,除非您非常小心.
标签:api,database-connection,mysql,php,class 来源: https://codeday.me/bug/20191101/1986377.html