php - MySQL 连接 : globally or in object?

标签 php mysql database class object

我有两个 PHP 类。一种用于连接到数据库、构建查询、执行查询以及与数据库断开连接。另一类是针对用户的:添加、更新、登录等。

我在争论是否应该全局连接到页面上的数据库并使用该连接(将数据库对象传递到用户对象的方法中),或者我是否应该从 a 内连接和断开与数据库的连接用户方法本身。

我看到的全局连接的优势在于,一旦连接,我就可以使用该连接来执行多个方法。缺点是我 7 需要担心传递数据库对象。

在方法内连接的优点是它是完全透明的,但是,可能会建立和断开 4 或 5 个连接,这可能会导致开销。

是否有使用其中任何一个的最佳实践,或者它是否真的取决于用户数量和服务器的规范,例如内存,cpu等。系统需要支持最多1000个用户,所以规模很小。

如有任何反馈,我们将不胜感激。

-瑞安

最佳答案

在 PHP 中,最佳实践是采用全局方法。这主要是因为重复连接/断开与 MySQL 服务器的连接会导致性能显着下降。

事实上,尽管这看起来有悖常理,但大多数 PHP 专家(包括我自己)建议您完全避免使用 mysql_close(),除非有紧迫的理由不这样做。这是因为它在 PHP 的清理中自动处理,所以添加 mysql_close() 只会进一步降低性能。

关于php - MySQL 连接 : globally or in object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8438237/

相关文章:

mysql - 如何从 MySQL 表中选择数据并删除其他所有内容?

mysql - DATETIME 上的 IFNULL 不适用于比较

database - session 消息传递的 Cassandra 建模

sql - Toad 只在 sql 中给出日期

php - 通过查询Elasticsearch-PHP Client 2.0+更新

php - 将存储的数据库日期更改为当前时区(strtotime?)

php - MySQL group concat used with 2 join table 查询结果重复

php - 从 GCM 中删除消息

mySQL JOIN 用法

mysql - 删除旧行 MySQL 触发器 - 初学者