数据库
首页 > 数据库> > mysql – 一个数据库vs许多数据库

mysql – 一个数据库vs许多数据库

作者:互联网

我知道这个问题已被多次询问,但我想答案一下.

我正在开发一个Web应用程序,它将允许我的客户管理他们的客户,兑现,发票,预订,网站和许多其他事情.我正在使用MySQL和一个包含大约30个表的数据库.

我希望我的解决方案能够处理大约100,000个或更多客户.我的客户的需求将大不相同.从每年100个插入到一个,每天1000个插入到另一个.

现在我正在使用一个数据库(但我还在开发中),其中每个表都有一个帐户字段.我创建了一个模型层来访问自动将帐户附加到每个查询的数据(WHERE guid = 1成为WHERE帐户= X AND guid = 1).这项工作非常好,并且很容易维护,但我担心混合客户数据的事实.请注意,我使用的是增量ID而不是GUID.

我的问题是,我应该继续做这样的事情还是应该为每个客户创建一个数据库?

解决方法:

您正在查看多租户数据库.多租户解决方案的范围从每个客户端一个数据库(无共享)到每个客户端一行(共享所有内容).

“无共享”是每个客户最贵的.大量客户意味着大量服务器.客户端灾难恢复简单明了. “无共享”减少了意外地将客户端数据暴露到几乎为零的可能性.

“共享一切”是每个客户最便宜的.每个表都有一列,用于标识行所属的客户端.客户端灾难恢复非常复杂;您必须恢复每个表中的各个行. “共享一切”是最容易意外暴露客户端数据的架构.

微软在multi-tenant architecture上有一篇很好的文章.他们的术语是

>单独的数据库(无共享)
>单独的架构
>共享架构(共享所有内容)

标签:mysql,database,multi-tenant
来源: https://codeday.me/bug/20190518/1126715.html