最近在做一个新的项目需求,按照需求方的要求,需要考虑到分布式数据库架构。但是对这一方面不是很了解。
分布式数据库是指多台数据库服务器,然后业务代码中使用某种定位方式写入一个数据库吗,类似分表操作?还是主从式的分布数据库?如果是前者,怎么实现对服务器的定位?
最近在做一个新的项目需求,按照需求方的要求,需要考虑到分布式数据库架构。但是对这一方面不是很了解。
分布式数据库是指多台数据库服务器,然后业务代码中使用某种定位方式写入一个数据库吗,类似分表操作?还是主从式的分布数据库?如果是前者,怎么实现对服务器的定位?
目前还没有完全可用的开源的,免费MYSQL分布式数据库服务。
通过hash,range等方式实现的多分片叫做sharding技术。
要实现对数据库的定位其实是很简单的。
<code class="php">$dbs = array( array("host"=>"127.0.0.1:3306"), array("host"=>"127.0.0.2:3306") ); $choose_db = $dbs[$data["id"] % count($dbs)]; //hash型sharding //更多的还有range(按自增区间),date(按天,按月等) //本质上来说,就是把不同的数据路由到不同的服务器。</code>