一个数据库还是多个?

dsi*_*ims 9 maintainability performance database-design multi-tenant

我正在开发一个管理多个实体数据的网站.实体之间不共享数据,但它们可能由同一客户拥有.客户可能希望从单个"仪表板"管理其所有实体.那么我应该有一个数据库用于所有内容,还是将数据分成单独的数据库?有最好的做法吗?有一个积极的/消极的:

  • 整个站点的数据库(实体有"customerID",数据有"entityID")
  • 每个客户的数据库(数据有"entityID")
  • 每个实体的数据库(数据库与客户的关系在数据库之外)

多个数据库似乎会有更好的性能(更少的行和连接),但最终可能成为维护的噩梦.

Vin*_*nie 5

就个人而言,我更喜欢单独的数据库,特别是每个实体的数据库.我喜欢这种方法,原因如下:

  1. 关于查询,更小=更快.
  2. 查询更简单.
  3. 没有意外地将一个客户的数据显示给另一个客户的风险.
  4. 一个数据库在变大(实体数量增加)时可能会造成性能瓶颈.您可以获得一种水平可伸缩性,每个实体1个.
  5. 随着客户或实体的移除,轻松清理数据.

当然,升级架构需要更多时间,但根据我的经验,一旦部署和添加很简单,修改就不常见了.


ang*_*son 1

备份和恢复怎么样?您是否遇到过客户想要恢复其实体之一的备份的情况?