分布式数据库并不是指多个数据库,严格意义来说是指分布式数据库服务器,也成服务器集群。
特点:多台数据库服务器轮流对外提供服务,并提供冗余、容灾等基本功能,确保操作不中断。衡量一个MVC框架能不能进行分布式数据库开发,首先需要看MVC中的链接对象能否智能并顺利地切换数据库服务器。
以MYSQL驱动、ThinkPhp为例:
1.配置数据库
这里假设在原有的MySQL数据库服务器的基础上再添加一台用于存放BBS论坛数据的MySQl服务器,ip地址为192.168.1.10。
<?php
return array(
'DB_TYPE'=>'mysql', //数据库类型
'DB_HOST'=>'localhost', //服务器地址
'DB_NAME'=>'tp', //数据库名
'DB_USER'=>'root', //用户名
'DB_PWD'=>'root', //密码
'DB_PREFIX'=>'tpk_', //数据库表前缀
'DB_Con1'=>array(
'db_type'=>'mysql',
'db_host'=>'192.168.1.10',
'db_name'=>'bbs',
'db_user'=>'root',
'db_pwd'=>'root'
)
);
2. 使用数据库
假设bbs数据库中有一个数据表,并命名为comm_bbs,动态切换到该数据表:
<?php
class IndexAction extends Action{
public function index(){
$user = M();
$data = $user->db(1,'DB_Con1')->table('comm_bbs')->where("classid=1")->select();
}
}