最好是一个大型SQL数据库,多个较小的SQL数据库或多个较小的表?

时间:2019-01-31 15:06:06

标签: sql-server database-design

我将重建一个使用单个SQL Server 2016数据库的在线服务,以管理拥有约40k成员的数百个俱乐部。目前,它运行良好且速度很快。但是,该系统很快就会在俱乐部和会员中翻两番。这意味着将有16k个成员的成员表以及其他记录比成员多的表(即出席记录等)。 为每个俱乐部创建一个数据库(可能大约有1200个数据库)或为所有人保留一个数据库会更有效吗?还是为每个俱乐部创建单独的桌子会更有效? (俱乐部之间的数据交互不是必需的)

2 个答案:

答案 0 :(得分:0)

也许有些DBA对此有很强的见解(我不是DBA),但是我个人不想管理1200个或更多数据库。根据Members表中行的大小,您可以轻松地在其中容纳数百万或数十亿条记录。在这方面,大小不应该成为问题。只要数据库正确归一化,对我来说将其保留为一个数据库就很有意义。做出这样的决定时,应考虑各种因素。管理1200个数据库的备份/还原或灾难恢复的效率如何?实际创建1200个数据库的效率如何?要管理1200个完全不同(或几乎完全相同)的模式的完全不同的数据库(唯一的区别就是其中的数据),将有多么容易?

答案 1 :(得分:0)

拥有1200个数据库将是一场噩梦。

如果俱乐部的数据相似,则所有俱乐部只能有一张桌子。

要分离数据,您可以创建1200个视图以仅显示单个俱乐部。

此外,出于其他报告目的,具有存储过程也将很方便。每个报告以组名为参数一个。例如:

EXEC sp_Club_Attendance @ClubName = 'ABC Heroes';
EXEC sp_Club_Annual_Budget @ClubName = 'XYZ Pilots';