Corie LeClair Asked: 2023-07-14 02:06:46 +0800 CST2023-07-14 02:06:46 +0800 CST 2023-07-14 02:06:46 +0800 CST 我应该重新使用数据库连接还是在关闭旧集合的同时创建新集合?社交媒体 772 这是针对不断请求新帖子、检查是否有人关注、获取评论等的社交媒体。 我不会指定哪种语言,因为它并不重要,但是,目前在我的代码中我 建立连接 得到/做我想做的事 关闭 然后重复 相反,我应该使用一个建立连接的系统,然后在有时运行更新时从中执行操作? 谢谢! mysql 2 个回答 Voted Best Answer mustaccio 2023-07-14T02:33:36+08:002023-07-14T02:33:36+08:00 “有时运行更新时从该连接执行操作”是不可能的,因为每个会话(连接)一次只能执行一个 SQL 语句。然而,每次想要完成某件事时打开和关闭连接也是一个坏主意,因为建立连接的开销很大,特别是对于短事务。 您想要做的是维护一个连接池,而预先配置的连接数量是在应用程序启动时创建的,然后重新使用。这解决了两个问题:避免频繁建立连接的开销,并允许您限制打开的数据库连接的数量,减少数据库服务器上的资源使用,同时支持潜在的大量客户端。后者是可能的,因为实际上并非所有客户端都需要同时使用连接。 大多数编程框架都支持连接池。 Rick James 2023-07-14T02:53:05+08:002023-07-14T02:53:05+08:00 在程序执行期间很少有理由使用多个连接。 MySQL 很高兴能够为仅偶尔执行某些操作的长时间运行的程序提供数百个“睡眠”连接。 以下是涉及 PHP 的两个用例: 对于 Apache 下使用 PHP 的网页,在脚本开头附近打开一个连接;最后断开它(或者让它在 PHP 脚本结束时自动关闭)。运行超过几秒的网页会因为“连接”以外的原因而出现问题。 AJAX 回调 PHP 脚本也是如此。它需要 CONNECT + 操作(例如 UPDATE)+ DISCONNECT(显式或隐式)。如果存在任何池化,则 PHP 脚本不会处理它。
“有时运行更新时从该连接执行操作”是不可能的,因为每个会话(连接)一次只能执行一个 SQL 语句。然而,每次想要完成某件事时打开和关闭连接也是一个坏主意,因为建立连接的开销很大,特别是对于短事务。
您想要做的是维护一个连接池,而预先配置的连接数量是在应用程序启动时创建的,然后重新使用。这解决了两个问题:避免频繁建立连接的开销,并允许您限制打开的数据库连接的数量,减少数据库服务器上的资源使用,同时支持潜在的大量客户端。后者是可能的,因为实际上并非所有客户端都需要同时使用连接。
大多数编程框架都支持连接池。
在程序执行期间很少有理由使用多个连接。
MySQL 很高兴能够为仅偶尔执行某些操作的长时间运行的程序提供数百个“睡眠”连接。
以下是涉及 PHP 的两个用例:
对于 Apache 下使用 PHP 的网页,在脚本开头附近打开一个连接;最后断开它(或者让它在 PHP 脚本结束时自动关闭)。运行超过几秒的网页会因为“连接”以外的原因而出现问题。
AJAX 回调 PHP 脚本也是如此。它需要 CONNECT + 操作(例如 UPDATE)+ DISCONNECT(显式或隐式)。如果存在任何池化,则 PHP 脚本不会处理它。