CodeIgniter多个数据库持久连接?

use*_*146 7 php mysql codeigniter multiple-databases persistent-connection

我在我的CodeIgniter应用程序中使用多个数据库,并且已经阅读了很多应该关闭持久连接的数据库.

为什么推荐这个措施,这在最新版本2.0.2中仍然是必要的吗?

我正在做的事情

$db2 = $this->load->database("dbname", TRUE);
Run Code Online (Sandbox Code Playgroud)

Ale*_*x W 1

Code Igniter 文档没有解释

不幸的是,2.0.2 的 Code Igniter 文档没有解释为什么应该关闭它们。它只是说明有一个设置可以这样做。这样做的原因很可能是因为它实际上不是 Code Igniter 功能,而是更多的底层 PHP/MySQL 功能。PHP在其文档中有一个关于持久连接的非常好的详细页面。

服务器管理员的解释(我)

基本上,这取决于性能。如果您有少量用户位于加利福尼亚州,并且您的 MySQL 数据库服务器位于瑞士,那么连接到 MySQL 服务器将会产生大量开销(与在加利福尼亚州同一服务器上连接到 MySQL 相比) )。拥有持久连接将避免每次您想要使用 MySQL 查找内容时重新连接的开销。还有许多其他问题可能会导致连接开销,例如服务器或数据库的配置方式。除了性能之外,如果连接关闭不当,也可能会导致问题,从而导致表锁定。

为什么建议关闭

此设置对于大多数服务器来说并不理想的原因是,如果您有超过 60 个用户同时使用您的数据库,或者您的 MySQL 配置设置为最大连接数,您将很快达到最大连接数,并且此可能会导致数据库错误或服务器崩溃等。