【发布时间】:2019-01-31 15:06:06
【问题描述】:
我即将重建一个在线服务,该服务使用单个 SQL Server 2016 数据库来管理拥有大约 40k 会员的数百个俱乐部。它目前运行良好且快速。然而,该系统很快就会在俱乐部和会员中翻两番。这意味着一个包含 16k 个成员的成员表和其他记录比成员多得多的表(即出勤记录等)。 为每个俱乐部创建一个数据库(可能有大约 1200 个数据库)或为所有人保留一个数据库会更有效吗?或者为每个俱乐部创建单独的表格会更有效? (不需要俱乐部之间的数据交互)
【问题讨论】:
-
16k 行至少可以说是微不足道的。 SQL Server 可以轻松处理单个表中的数百万行。如果目前运行良好且快速,为什么要首先尝试重新设计它?这听起来像是过早的优化,这是使用非标准设计模式来解决不存在的性能问题的做法。这也是纯粹的邪恶。在我看来,您应该不理会它,并在您实际遇到性能问题时解决这种情况。但是......每个俱乐部的单独桌子听起来真的很可怕。
-
我更喜欢具有精心设计的索引和查询的单一数据库。索引的存在是为了确保更大的数据库不会被占用。此外,我不喜欢为不同的团体(俱乐部等)制作类似表格的做法 - 为什么不使用一个带有“ClubID”的表格 - 比 tabClub1、tabClub2、.....
-
这是一个常见问题解答。例如,谷歌你的标题。
标签: sql-server database-design