CakePHP支持多数据库引擎、分布式数据库。
可以很方便的实现根据业务特性把一些表格分布到合适的数据库引擎或者合适的数据库服务器中。
比如把核心数据和普通数据进行分开,把系统数据和用户数据分开。
把安全性高的数据放到安全性更好的数据库中,而把对性能要求更高的数据存放到性能更好的数据库引擎中(比如一些内存数据库)。
具体方法:
在config/database.php中配置多个数据库实例:
class DATABASE_CONFIG { var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => $db1, 'login' => 'root', 'password' => 'root', 'database' => 'demo', 'prefix' => 't_', 'encoding' => 'utf8', ); var $critical = array( 'driver' => 'oracle', 'persistent' => false, 'host' => $db2, 'login' => 'root', 'password' => 'root', 'database' => 'demo', 'prefix' => 't_', 'encoding' => 'UTF8', ); }
对于使用default的Model无需添加任何代码(cake Model基类的缺省设置就是default),
对于想要使用critical数据源的Model,需设置数据库配置变量:
var $useDbConfig = 'critical';