什么将是最优化的方式来存储真正大量的行在SQL Server?



我有这样一个用例:

3表:Customers,Users,Contacts。每个客户可能有大约10,000个用户。

每个用户大约有15000个联系人。我希望在contacts表中存储每个用户的15,000个联系人。但是,在只有一个客户的情况下,这将使我设置为1.5亿行。如果我有100个客户呢?

我知道分区表可能有帮助,但是有更好的选择吗?什么是最好的解决方案来存储这么多的数据,并使其在之后可用(Select, Insert查询要优化)。

谢谢!

您所提到的行数不需要任何特殊的表设计。

为了保持良好的性能,除非绝对需要,否则避免像TEXT、LONGTEXT这样的大对象列数据类型。请使用NVARCHAR(255)或任何在您的应用程序中最有意义的方法。

您的表需要正确的索引来获得最佳性能。要查找这些索引,在向表中至少填充了一些数据之后,可以使用SSMS:在SSMS中运行查询之前,在查询面板中右键单击并选择Show Actual Execution Plan。然后运行查询。SSMS有时会在执行计划的顶部为查询建议一个索引。

如果不知道最常用的查询是什么,就不可能猜出正确的索引。有一件事是肯定的:在许多列上添加单列索引可能没有帮助。

随着SQL应用程序(如您的应用程序)的增长和添加用户,表也会增长。而且,随着表的增长,它们通常需要新的索引。向生产中的应用程序添加或更改索引是完全正常的。在100K行时重新访问索引,然后在100万行、1000万行时再次访问,以此类推。

相关内容

最新更新