gpt4 book ai didi

php - 我什么时候应该从 php 脚本连接到我的数据库?

转载 作者:行者123 更新时间:2023-11-29 00:23:57 25 4
gpt4 key购买 nike

我的网站上有使用数据库的页面,也有不使用数据库的页面。

每当我需要数据库时,我都会使用 $conn = connect() 进行连接。但这意味着我需要把它放在任何需要的地方。如果我把它放在一个包含文件中并将该文件放入每个页面中,即使不需要数据库,它也会连接。这是个好主意吗?在不需要时创建连接会导致问题或其他问题,还是应该只在需要时连接?

最佳答案

在不需要时连接到数据库会引入少量本可以避免的开销。如果您需要您的页面尽可能快地运行,那么您可以通过避免不必要的数据库连接来进行优化。

这表示多少开销占您的 PHP 总执行时间的比例各不相同,例如,如果您的 PHP 脚本简单快速,则数据库连接按比例占总时间浪费的比例较大。如果您的 PHP 脚本做了很多其他事情,那么数据库连接在总时间中所占的百分比就较小。

数据库连接的速度也可能会有所不同,具体取决于服务器的速度、MySQL 是否配置了 DNS 依赖性等。

当我在 Zend Framework 上工作时,我们实现了“惰性”连接。您可以随时创建 Zend_Db_Adapter 对象的实例,但该类不连接到类构造函数。它会在您运行第一个查询时(或当您显式调用 getConnection() 方法时)连接到数据库。

另一个考虑因素是,当您完成运行查询后,您要多快断开与数据库的连接。

假设您每秒处理 1000 个 PHP 请求(平均每毫秒一个),并且您的每个 PHP 请求持续 100 毫秒。因此,在任何给定时刻,您平均可能有 100 个 PHP 请求在进行中。如果您的 PHP 代码做的第一件事是连接到数据库,而它做的最后一件事是断开与数据库和其他资源的连接(通过自动请求清理),那么您随时可能还有 100 个事件的数据库连接。

但是,如果您延迟连接到数据库,并在查询完数据库后立即断开连接,并避免在某些请求上完全连接,那么平均而言,您的并发数据库 session 数会少得多。

这有助于减少数据库服务器上的资源使用,允许更高的吞吐量和每秒完成更多的 PHP 请求。

关于php - 我什么时候应该从 php 脚本连接到我的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19938554/

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