有多少个数据库用于Web系统?

时间:2011-08-25 00:54:15

标签: mysql database-design

我在网络系统中使用了多少个数据库?我打算:

  1. 用户信息和相关表格
  2. 管理员表和所有系统表
  3. 报告系统
  4. 审核表格日志
  5. 用户对象表,如照片,视频,评论
  6. 用于读取/写入数据的用户API应用程序。
  7. 问题:

    1. 我正在使用带有cakephp的MySQL和MagnoDB。因此,如果我实现上述,那么我将在系统中使用6个数据库。添加备份,然后每个共有12个数据库中的2个。这种方式的任何优势/劣势vs将所有表转储到1个数据库中?我认为雅虎,亚马逊,脸书等拥有数百或数千个数据库的网站是常态,或者这些都是由1个数据库驱动但有多个实例?

    2. 对于查找表:我是否在每个数据库中复制它们,或者管理数据库中的1个副本是否足够好?

    3. 此外,如果我有同一个DB的多个实例,我需要将它们命名为DB1,DB2,DB3,还是可以将它们称为任何内容?

    4. 我们正在开发一个本地评论网站,所以最终会有很多用户。

3 个答案:

答案 0 :(得分:2)

具有相关信息的所有内容都应位于同一个数据库中 因此,如果您提到的所有内容都有相关信息,那么您可能需要3个DB:dev,prod,backup 如果某些信息与其他信息无关,那么它应该在单独的数据库中 作为开发人员,我总是为每个新的无关项目创建一个新的数据库。否则,您可以为现有数据库创建/添加新功能。

答案 1 :(得分:1)

使用单个数据库。使用多个数据库的问题包括分布式查询(已经指出),以及与每个数据库服务器/实例相关的开销,以及一般的维护复杂性。

你想要的是 表空间 http://dev.mysql.com/doc/refman/5.1/en/create-tablespace.html

考虑使用像Oracle这样的dbs,每个实例的开销是300-500mb +。更不用说一组新的进程和单独的缓冲区缓存。您需要一个统一的缓冲区缓存来充分利用RAM。

使用数据库作为分区单元进行分区并不能为您节省太多,但会让您头疼不已。只要您很好地设计模式并调整存储,MySQL就可以处理大量数据(兆兆字节)。并使用单独的表空间。

移动您的应用,备份/恢复也应该很简单。

我创建单独数据库的唯一原因是,如果涉及多个客户,或者项目需要它。但从技术角度来看通常不需要它。

答案 2 :(得分:0)

缺点:尝试跨多个数据库进行连接

您可能需要与另一个区域相关的任何区域都应位于同一个数据库中。