CodeIgniter多个数据库持久连接?

| 我在CodeIgniter应用程序中使用了多个数据库,并且已经读了很多关于应该关闭持久连接的信息。 为什么建议使用此措施,而最新版本2.0.2仍需要此措施吗? 我正在做类似的事情
$db2 = $this->load->database(\"dbname\", TRUE);
已邀请:
不解释Code Igniter文档 不幸的是,适用于2.0.2的Code Igniter文档并未解释为什么应将其关闭。它仅说明了这样做的设置。这样做的原因很可能是因为它实际上不是Code Igniter功能,而是更多的基础PHP / MySQL功能。 PHP在其文档中有一个非常好的和详细的页面,关于持久连接。 服务器管理员的说明(我) 基本上,它取决于性能。如果您位于加利福尼亚的用户数量很少,而您的MySQL数据库服务器位于瑞士,则与MySQL服务器建立连接会产生大量开销(与加利福尼亚州同一服务器上与MySQL的连接相比, )。拥有持久的连接将避免每次您想使用MySQL查找内容时都要重新连接的开销。还有许多其他问题可能导致连接开销,例如服务器或数据库的配置方式。除了性能之外,如果连接关闭不当还会导致问题,导致表锁定。 为什么建议将其关闭 对于大多数服务器而言,此设置不理想的原因是,如果同时有60个以上的用户使用数据库,或者将MySQL配置设置为最大连接数,则将很快达到最大连接数,并且可能导致数据库错误或服务器崩溃等。
这是默认数据库:$ db [\'default \'] = array(\'dsn \'=> \'\',\'hostname \'=> \'localhost \',\'username \'=> \ 'root \',\'password \'=> \'\',\'database \'=> \'mydatabase \',\'dbdriver \'=> \'mysqli \',\'dbprefix \'=> \'\',\'pconnect \'=> TRUE,\'db_debug \'=>(环境!== \'生产\'),\'cache_on \'=>否,\'cachedir \'=> \ '\',\'char_set \'=> \'utf8 \',\'dbcollat​​ \'=> \'utf8_general_ci \',\'swap_pre \'=> \'\',\'encrypt \'=>否,\'compress \'=> FALSE,\'stricton \'=> FALSE,\'failover \'=> array(),\'save_queries \'=> TRUE);在database.php文件的底部添加另一个数据库$ db [\'second \'] = array(\'dsn \'=> \'\',\'hostname \'=> \'localhost \',\'用户名\'=> \'root \',\'密码\'=> \'\',\'数据库\'=> \'mysecond \',\'dbdriver \'=> \'mysqli \',\ 'dbprefix \'=> \'\',\'pconnect \'=> TRUE,\'db_debug \'=>(环境!== \'production \'),\'cache_on \'=>否,\' cachedir \'=> \'\',\'char_set \'=> \'utf8 \',\'dbcollat​​ \'=> \'utf8_general_ci \',\'swap_pre \'=> \'\',\' crypto \'=> FALSE,\'compress \'=> FALSE,\'stricton \'=> FALSE,\'failover \'=> array(),\'save_queries \'=> TRUE);在autoload.php配置文件$ autoload [\'libraries \'] = array(\'database \',\'email \',\'session \');默认数据库可以通过自动加载数据库库来正常工作,但是可以通过在模型和控制器中使用构造函数来第二次加载数据库并进行连接... db2 = $ this-> load-> database(\'second \',TRUE); }公共函数getsecondUsers(){$ query = $ this-> db2-> get(\'members \');返回$ query-> result(); }}?>

要回复问题请先登录注册