在一个查询中以10 db存储数据

时间:2013-12-07 23:44:01

标签: php pdo

最好使用一个查询在10个数据库服务器上保存数据?像保存群集数据一样。

示例:

$cluster = array(

 'pdo1' => new PDO('host_1','dbname1','dbuser1','dbpass1');

 'pdo2' => new PDO('host_2','dbname1','dbuser1','dbpass1');

 'pdo3' => new PDO('host_3','dbname1','dbuser1','dbpass1');

 'pdo4' => new PDO('host_4','dbname1','dbuser1','dbpass1');


);

$i=0;

foreach($cluser as $ket => $value){

    $done = $value->execute('myquery);

    if($done){

    $i++;
    }

}

if($i == count($cluster)){
   echo ('yeah i store data in 4 databases at one run');

}

我没有使用群集数据库的muc经验,真的不知道这些是如何工作的。有人可以帮助理解吗?

2 个答案:

答案 0 :(得分:2)

基本上,插入多个DB(在特定情况下,这是一个复制上下文)并不是开发人员的工作。 在DB Universe中,有一种复制模式可以帮助您。

您插入“master”数据库,然后该数据库本身会将它所拥有的差异复制到其所有从属服务器,(a)同步。

在较大的网站中,您可能甚至不知道数据层的基础架构,想象一些具有大量流量的openstack或aws应用程序,即时添加数据库实例。作为开发人员,您不必了解基础结构,或者每次创建实例时,您都必须将其添加到群集配置中,而您却无法做到这一点。

答案 1 :(得分:0)

难看的编码。

需要使用一个查询在10个数据库服务器上保存数据。

但是,开发人员实现复制并不行。

而mysql,redis和其他存储具有复制机制,具有更好的可扩展性和性能。

从官方网站了解有关mysql复制的更多信息。http://dev.mysql.com/doc/refman/5.5/en/replication.html