最近在做一個新的專案需求,按照需求方的要求,需要考慮到分散式資料庫架構。但是對這方面不是很了解。
分散式資料庫是指多台資料庫伺服器,然後業務程式碼中使用某種定位方式寫入一個資料庫嗎,類似分錶操作?還是主從式的分散資料庫?如果是前者,怎麼實現對伺服器的定位?
最近在做一個新的專案需求,按照需求方的要求,需要考慮到分散式資料庫架構。但是對這方面不是很了解。
分散式資料庫是指多台資料庫伺服器,然後業務程式碼中使用某種定位方式寫入一個資料庫嗎,類似分錶操作?還是主從式的分散資料庫?如果是前者,怎麼實現對伺服器的定位?
目前還沒有完全可用的開源的,免費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>