You are here

Drupal专业开发指南 第22章 多个数据库服务器

多个数据库服务器带来了额外的复杂性,因为数据将被重复插入和更新,或者数据库被分割到多个服务器中。

 
数据库复制
    MySQL中的数据库复制,一个单独的主数据库接收所有的写操作,然后这些写操作将被复制到一个或多个从数据库上。读操作可以在任何主数据库或者从数据库上进行。在一个多层架构中,从数据库也可以是主数据库。
当前,在一个能够复制的数据库环境下运行Drupal的一个难点是,Drupal不能区分读和写操作。然而,由于所有的数据库查询都要通过数据库层,通过扫描查询中的关键字ALTER, CREATE, DELETE, FLUSH, INSERT, LOCK, UPDATE,等等,也不难做到这一点,从而将查询分发给合适的数据库。通过在http://drupal.org搜索“replication”可以找到这种方式的一些例子,另外还有一篇博客也值得一读http://buytaert.net/database-replication-lag
 
数据库分割
    由于Drupal可以处理多个数据库链接,为了增加你的数据库架构的可升级性,另一种策略是将一些表放在一个机子上的一个数据库中,将另一些表放到另一个机子上的不同数据库中。例如,将所有的cache表分离到一个独立的机子上的独立的数据库中,对于所有使用这些表的查询,使用Drupal的表前缀机制来对查询应用别名,从而提高你站点的可升级性。
 

Drupal版本: