我计划在同一个数据库表中有20个或更多的站点。
像这样的结构:
cms配置
cms_页
cms U用户
cms U模块
我一直在想,这些表中的每个表都应该有一个customer_id列,这样我就可以轻松地为给定的客户选择和调用行。但这是在加载时间、内存使用和所有这些方面最好的方法吗?
我想要一个易于更新和修复的设置,所以我认为用相同的结构运行单独的数据库是一个坏主意?

最佳答案

如果您负责维护,那么将所有内容都放在同一个数据库中是进行更新、维护和备份的最简单路径。
将每个数据库分开会增加安全性和隐私性(因为每个客户数据库用户都可以访问其他客户的数据,通过能够读/写cms_页面的事实),代价是(位)更高的维护成本。分离数据库还可以简化性能扩展,在这里,您可以更快地将超出预期的客户转移到自己的服务器上。记住,更新和备份可以自动化,所以这没什么大不了的。
性能方面,拥有大量数据的客户将影响拥有较少数据的客户的性能(因为索引扫描时间将与页面总量成比例增长,即使使用多列索引可以减轻这种影响)
因此,为每个客户提供一个单独的数据库并支付相应的费用是有意义的,除非您确定这些站点将是流量不大的小型站点,它们都是朋友,或者永远不会找到自己的数据库用户名:-)。

10-06 07:16
查看更多