php mysql分布式数据库如何实现?

最近在做一个新的项目需求,按照需求方的要求,需要考虑到分布式数据库架构。但是对这一方面不是很了解。
分布式数据库是指多台数据库服务器,然后业务代码中使用某种定位方式写入一个数据库吗,类似分表操作?还是主从式的分布数据库?如果是前者,怎么实现对服务器的定位?

阅读 5.8k
2 个回答
  1. 目前还没有完全可用的开源的,免费MYSQL分布式数据库服务。

  2. 通过hash,range等方式实现的多分片叫做sharding技术。

要实现对数据库的定位其实是很简单的。

$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(按天,按月等)
//本质上来说,就是把不同的数据路由到不同的服务器。

您可以考虑使用一些mysql数据库中间件来实现分布式数据库,也可以用各种共有云计算平台提供的云数据库服务,他们后端都是做了分布式,读写分离的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题