我在网络系统中使用了多少个数据库?我打算:
问题:
我正在使用带有cakephp的MySQL和MagnoDB。因此,如果我实现上述,那么我将在系统中使用6个数据库。添加备份,然后每个共有12个数据库中的2个。这种方式的任何优势/劣势vs将所有表转储到1个数据库中?我认为雅虎,亚马逊,脸书等拥有数百或数千个数据库的网站是常态,或者这些都是由1个数据库驱动但有多个实例?
对于查找表:我是否在每个数据库中复制它们,或者管理数据库中的1个副本是否足够好?
此外,如果我有同一个DB的多个实例,我需要将它们命名为DB1,DB2,DB3,还是可以将它们称为任何内容?
我们正在开发一个本地评论网站,所以最终会有很多用户。
答案 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)
缺点:尝试跨多个数据库进行连接
您可能需要与另一个区域相关的任何区域都应位于同一个数据库中。