MySQL理论:适用于多家公司的单一数据库

时间:2015-02-18 07:18:35

标签: mysql

我有MySQL的设计问题。作为一个辅助项目,我正在尝试创建一个基于云的安全管理系统。在最基本的术语中,公司将订阅该服务,该服务将公司文档记录作为blob,纠正,员工信息,审计结果进行管理。

我最初的设计理念是为每家公司提供一个单独的数据库。

但是,我遇到的问题是,如果用户访问控制是安全的,是否可以让所有公司都在一个数据库下?这有什么陷阱?是否有任何性能问题需要考虑?对于识别记录,它是公司的复合密钥和每个公司唯一的referenceID编号吗?如果是这样,当为公司记录生成参考编号时,它会随着记录集的增加而减慢吗?

就限制而言,我预计会有多达2000家公司,最初每家公司最多有1000条记录,每年增长5%。我预计每家公司最多可获得2 gb的blob存储量,每年增长10%。该系统是运行一个云服务器,无论是多个数据库还是一个大数据库。

对此的任何想法将不胜感激。

2 个答案:

答案 0 :(得分:1)

您有两个问题:性能和安全性。

如果您使用相同的mysql用户,则安全性与一个选项的安全性不会相同。

如果您需要性能,则可以获得相同的结果,运行一个或多个数据库(例如参见mysql分区)。

但是还有其他一些你应该考虑的事情:比如如何为你的网站建立一个数据库很容易......或者就像每个用户拥有一个数据库一样容易。

事实上,我给你一个答案:考虑到数据的大小,不要在性能问题上做出选择,这些问题非常重要,这些选择将使你的生活变得轻松。

答案 1 :(得分:1)

如果没有太多的公司间互动和整体频繁的统计数据,并且您不打算每周左右进行应用程序更新,这会影响数据库结构,我会选择单独的数据库(和每个公司的数据库用户)。它具有更高的可扩展性,更不容易出现用户访问错误,也更容易进行某些操作,例如删除公司。

另一方面,2 mil条目并不是什么大问题,如果您计划进一步开发应用程序,将其保存在一个DB中可能是更好的方法。