BroPHP2.0的数据模型中,实现了数据库的分离部署。即允许用户把不同的数据表,分离到不同的数据库服务器上,以实现负载的分离,更加的符合大型网站的需求。
一、数据分离方法
以一个CMS系统为例,假设有会员、内容、评论和专题四个主要的数据模型,分别对应四个数据表。如果这四个表部署在同一个数据库服务器中,不管访问哪个表都是请求同一个数据库服务器,而如果其中的评论模型数据量很大,或访问量很高,一定也会影响其它数据模型的效率,也会导致整个网站访问速度下降。但如果能将评论模型对应的数据表部署到另外一台服务器上,做到和其它三个数据表分离,这样访问评论时就不会影响到其它三个模型的操作效率。而如果每个模型都很复杂,又可以将不同模型的数据表分别部署到独立的数据库服务器中,做到互不影响。
二、数据库连接配置
要将同一个项目中的数据表分离部署在不同的数据库服务器中,就意味着每个数据库服务器,都需要一套独立的连接配置。默认的数据库连接配置信息,在和框架同级目录中的主配置文件config.inc.php中。默认是使用一个数据库服务器,不需要数据分离就什么都不需要更改,只要配置信息填写正确即可。如果需要将某一个数据表部署到另外一台数据库服务器中,也不需要改变主配置文件,只要增加一个新数据库连接配置文件即可。新建的这个文件一定要和主配置文件在同级目录中,可以自定义文件名称,但必须以“.db.php”为后缀名,数据库配置选项也要和主配置文件的一致,包括数据源DSN、数据库服器主机、用户名、密码、库名和表前缀信息。BroPHP2.0也为用户提供一个参考文件,直接复制框架目录brophp下面的“link1.db.php”文件,到主配置文件同级目录中,按自己的需求改一文件名称即可。默认link1.db.php文件中的数据库配置选项如下所示:
按新添加的数据库服务器的信息,更改该文件中的配置选项即可。选项内容虽然是固定的,而如果某个选项不存在或是注释掉,则可以从主配置文件config.inc.php中继承使用。例如,两个数据库服务器用户名、密码、数据库名、表单前缀都一样,只有数据库主机位置不同,则在该文件中只留下一行,声明一个常量“define(HOST,..2.);”即可,其它选项注释或删除都可以,会自动从主配置文件中继承。
如果再新增加一个数据库服务器,也只需要按同样的方法再新增加一个数据库连接配置文件即可。文件名称需要自定义,如果有多个数据库服务器,建议按顺序编号,或按主机名为每个独立的数据库连接配置文件命名。
注意:数据库服务器如果需要远程连接,必须设置远程连接权限。
三、数据模型配置
只新建配置文件还不行,还需要将特定的数据模型和它绑定在一起,才能实现具体的数据模型和指定的数据库服务器之间的关联。否则数据模型还是使用主配置文件中的默认连接信息,连接默认的数据库服务器。只需要在自定义的数据模型中,添加一个“dbconfig”成员属性,属性值则为数据库配置文件名称(不用带后缀),就可以将数据模型与具体的数据库服务器进行绑定。例如将评论数据模型(北京治疗白癜风那个医院比较好白癜风特征