gpt4 book ai didi

php - 未使用的 mysql 连接会减慢脚本速度吗?

转载 作者:可可西里 更新时间:2023-11-01 08:07:25 26 4
gpt4 key购买 nike

我正在为我的网站编写一个 API,以及一个相当大的类来处理所有 API 请求。

大多数页面,如果不是网站上的所有页面,都会在加载时向 api 发送至少一个请求。该网站最重要的优先事项是效率,因此服务器处理速度非常快。

因此,当涉及到类和某些 PHP 函数时,我正在寻求一些建议。

首先,看起来我正在编写的类最终可能会包含大约 3000 行代码。如果这是在每个页面上初始化的,忽略了每个页面只会使用类中的一个或两个函数的事实,这会使 API 变慢吗?我是否应该查看每个类方法的类扩展的单独文件?

其次,我目前在目录中的单独文件中拥有与各种数据库的所有连接。每个连接中都有函数 mysql_pconnect()。目前,我只在需要时才需要这些文件。因此,如果方法需要连接到 x 数据库,那么我只需将 require(connection...) 放入方法中即可。在类中包含文件是否不好?

我在问,因为唯一的其他解决方案是要求页面顶部的所有连接,以便类可以访问它们而无需为每个方法都需要它们。这就是为什么我想知道同时拥有多个连接(即使未使用)是否会对服务器造成负担?

所以真的是三个问题:

  1. 即使只使用一个类方法,在每个页面的开头启动一个大类是否会减慢脚本运行时间?这就是人们使用“类扩展类”的原因吗?
  2. 在类中“require()”文件不好吗?
  3. 未使用的 mysql 数据库连接会减慢脚本的运行速度吗?

最佳答案

不,未使用的 MySQL 连接不会消耗太多(如果有的话)cpu 时间,尽管它会占用一些内存来处理必须在每个连接基础上维护的各种“状态”位。

但是,请注意,MySQL 的连接协议(protocol)实际上是相当“轻量级”的。维护一个持久连接池听起来很有吸引力,但无论如何建立新连接的成本已经很低了。

持久连接是解决连接开销的快速解决方案,但它们确实会带来问题。最糟糕的情况是被放弃的连接会使连接处于不确定状态(进行中的事务、更改的服务器变量/配置等),除非您非常小心,否则您很容易造成无意的死锁。

关于php - 未使用的 mysql 连接会减慢脚本速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8900358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com