-1

我有一个如下表:

tblQuestions
---------------
ID(pk) int
CustomerID(fk) int
QTypeID(fk) int
QNumber int
FieldName varchar(max)
FieldValue varchar(max)

CustomerID、QTypeID、QNumber 上的聚集索引。
对于 CustomerID、QTypeID 和 QNumber 的每个组合,将有 4 到 5 条记录。并且,对于每个 customerID,最多有 250 条记录。

另一种设计方法是创建 5 到 6 个不同的表,其中定义了字段,并将 customerid 作为外键,每个客户有一条记录。

我的问题是,第一种方法在多少条记录后开始影响性能,或者会一直影响性能吗?

你觉得这种方法有什么问题吗?最大可能的记录可能高达 5000 万条记录。

4

1 回答 1

1

您可能在这里过早地进行了优化。以在规范化和消除重复方面最有意义的方式设计您的模式,而不是在预期性能方面。

“我的问题是,第一种方法在多少条记录后开始影响性能,还是会一直如此?”

没有人可以为你回答这个问题。如果你想知道你提议的表设计的性能特征,模拟它,插入你的 50M 记录并运行一些查询。

“你觉得这种方法有什么问题吗?”

数据库模式设计没有正确或错误的答案。有像规范化这样的最佳实践,但也有很多理由对数据进行反规范化。如果您担心的话,模拟一下并测试性能。

于 2012-07-03T01:06:00.740 回答