使用具有多个数据库的CodeIgniter活动记录进行MySQL优化

时间:2011-09-07 19:31:50

标签: php mysql codeigniter activerecord

我使用CodeIgniter Active Records类使用多个数据库。我不得不禁用与MySQL的持久连接,因为CodeIgniter Active Records类不能使用多个数据库建立持久连接。

我正在查看我的数据库的负载,似乎它正在使用大多数调用“更改数据库”的查询,我不确定这是否是一个好兆头。

如何在不必一直调用“更改数据库”的情况下对其进行优化?

2 个答案:

答案 0 :(得分:2)

它不像大多数Active Record命令那样友好,但您可以像这样直接调用SQL:

$query = $this->db->query("SELECT * FROM database_a.some_table");
$query2 = $this->db->query("SELECT * FROM database_b.another_table");

答案 1 :(得分:1)

您是否使用引用这两个数据库的查询?如果没有,为第二个数据库加载新的数据库实例并不困难。即你仍然会使用$ this-> db作为第一个,但是第二个你可以使用$ this-> db2。老实说,我不知道这是否会触发你正在谈论的“变更数据库”命令,但至少可能是更具可持续性的代码。 CI可以在脚本持续时间内保持与每个数据库的连接(不是持久连接),看起来您的问题将得到解决。

我从来没有在一个应用程序中需要多个mysql数据库,所以这完全是基于我所看到的,例如,一个mysql数据库,另一个是sqlite数据库。