我如何“分发”数据库?

时间:2011-02-15 06:41:09

标签: query-optimization lan distributed-transactions

到目前为止,我的“数据库服务器”一直很高兴成为一台PC。

不幸的是负载变得太大,所以看起来我需要“分发”数据库。

究竟是什么意思?如何在多台服务器上传播我的d / b?我需要一个用户查询的中间服务器吗?以某种方式将负载分配给'真正的'd / b服务器?

这是如何工作的?写d / b写?阅读?

任何n00b 101个网站或书籍?

2 个答案:

答案 0 :(得分:1)

如果您正在使用MySQL,您可以查看MySQL Proxy,它可以处理跨多个服务器的循环和负载平衡。许多其他RDBMS也具有此功能。

分散负载的另一种方法是“分片”您的数据库,换句话说,在多个系统中创建记录,并有一种区分/定位哪个系统从中检索它们的方法。这是一种常见的做法。

对于MySQL服务器,请查看O'reily的“高性能MySQL”

答案 1 :(得分:1)

单个数据库的瓶颈究竟是什么?是吗

  • 阅读表现
  • 写性能

高流量网站使用的方法很少。

  • 使用主/从模型。添加一个或多个服务器,并将它们作为主数据库的从属服务器。所有写入都将在您的主人身上执行。可以从任何从站执行读取。这可能是最简单的方法。

  • 拆分。不需要连接的实体可以移动到不同的数据库服务器。 每个分片都可以有自己的主从服务器。

    http://www.codefutures.com/database-sharding/

  • 群集 - Oracle RAC,Mysql NDB可以提供群集,其中一组服务器充当单个单元。

    http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-overview.html