我有一张如下表:
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万条记录。
答案 0 :(得分:1)
您可能在这里过早优化。在规范化和删除重复方面最有意义的方式设计您的模式,而不是在预期的性能方面。
“我的问题是,经过多少记录后,第一种方法开始影响性能,还是永远?”
没有人能为你解答这个问题。如果您想了解建议的表格设计的性能特征,请进行模拟,插入50M记录并运行一些查询。
“你认为这种方法有什么问题吗?”
数据库架构设计中没有正确或错误的答案。有一些最佳实践,如规范化,但也有很多理由使数据去标准化。如果那是您关注的问题,请将其模拟并测试性能。