【发布时间】:2021-12-06 15:20:45
【问题描述】:
我有这个用例:
3 个表:Customers、Users、Contacts。
每个客户可能有大约 10.000 个用户。
每个用户将有大约 15,000 个联系人。 我想为每个用户在 Contacts 表中存储他们的 15.000 个联系人。但是,只有一个客户,这使我达到了 1.5 亿行。如果我有 100 个客户怎么办?
我知道分区表可能会有所帮助,但有更好的选择吗? 存储这些数据量并使其在之后可用(选择、插入要优化的查询)的最佳解决方案是什么。
谢谢!
【问题讨论】:
-
是什么让你相信这是大量的行?
-
1.5 亿行应该不是问题吗?
-
150M 行不是大量行。分区可能是管理大量数据的最简单方法——它对应用程序完全透明。如果您的客户实际上是租户,则沿 CustomerId 进行分区实际上会将单个客户的数据保存在一起。
A better option根据什么标准比较好? -
这确实是一个数据库管理问题,最好在dba.stackexchange.com 提出,但在您提出这个问题之前,您还应该了解更多细节,因为它无法以您提出的一般方式回答。您需要的具体信息包括估计的总大小、可用配置、预算、预期使用情况、性能目标等。
-
@DougCoats,这是给 1 位客户的。如果我有 100 个呢?这使我达到了 15 亿行。这绝对是个问题。
标签: sql sql-server optimization query-optimization sql-optimization