问题:物理数据分离
比方说,我们有5个客户端。目前,每个客户端都拥有自己的数据库副本。这是因为有数百万行,我们不希望加载一个客户端的数据库来干扰另一个客户端数据库的性能。
这不是一个最佳的设计,因为:
- 管理为每个客户单独的连接不灵活,
- 变化需要跨多个数据库进行传播,并
- 一个新的数据库需要为每个新客户创建。
问:
是否有可能包括所有的数据到一个数据库中,但有某种形式的客户端数据之间的物理隔离,以便它也执行具有几个数据库?
这种隔离不是在表(或模式)级别,而是在行级别。例如,我不希望每个客户端都有单独的Employee
表(如Employee_ClientA
,Employee_ClientB
,Employee_ClientC
),而是一个Employee
表和ClientID
外键。这意味着表格中的数据需要物理分离。
将这些表分区到单独的物理硬盘上的文件组是否有意义? – davenewza
这个*可能*为OP,谁在谈论5个客户。但是这种分区技术是一种奇特的用途,它被设计用于扩展,而不是作为多租户架构的核心结构组件。在更一般的情况下这是不实际的。不支持x86硬件上超过1000个分区,默认限制是15000个分区(在具有16个RAM的服务器上)。 –