Php CodeIgniter-仅当有查询要运行时才连接到数据库

Php CodeIgniter-仅当有查询要运行时才连接到数据库,php,mysql,codeigniter,Php,Mysql,Codeigniter,目前,我在自动加载中加载数据库类,自动创建到mysql的连接。如果没有查询,它仍将创建连接 为了提高性能,我只希望在运行查询时连接到mysql 实现这一目标的最佳方式是什么 我正在考虑编写一个模型函数,所有查询都会通过该函数来检测数据库是否已连接,如果未连接,只需在运行$this->db->query()之前调用$this->load->database() 这样做的问题是,我必须更改代码中的所有$this->db->query()引用,这很痛苦 理想情况下,我希望扩展$this->db->qu

目前,我在自动加载中加载数据库类,自动创建到mysql的连接。如果没有查询,它仍将创建连接

为了提高性能,我只希望在运行查询时连接到mysql

实现这一目标的最佳方式是什么

我正在考虑编写一个模型函数,所有查询都会通过该函数来检测数据库是否已连接,如果未连接,只需在运行
$this->db->query()
之前调用
$this->load->database()

这样做的问题是,我必须更改代码中的所有
$this->db->query()
引用,这很痛苦

理想情况下,我希望扩展
$this->db->query()
函数以支持此功能


有什么想法吗?

您可以修改数据库配置的autoinit属性

$db['mydb']['autoinit'] = false;
这将导致数据库类在实例化时不进行初始化(包括连接到服务器),而是在第一次查询时进行初始化


请参见

只有当您有许多不需要DB查询的页面时,这才有用。或者,如果您使用的是高速缓存Heavillyn,则不确定这里的优势是什么,尽管您与DB有连接,但它仅在以任何方式使用时才处于活动状态。它就像自动加载html、url和其他库一样。在被要求使用之前,它们不是性能上的成功。