1

这只是对正在创建的站点和其他大型站点的考虑。

我正在使用标识列来存储我的一些表的 ID,并且我有一些类,其 Id 被装饰Int32以保存从数据库中检索到的 ID 的值。

我担心的是,随着网站变得越来越大,一些呈指数增长的表格,例如将来QuestionComments可能会超过Int32限制。所以我把我的班级改成使用long.

public class Question
{
   public long QuestionID { get; set; }
   ...
}

//将数据库值转换为.Net类型

 Question q = new Question();
 q.QuestionID = Convert.ToInt32(myDataRow["QuestionID"]);

我的假设有多真实?使用 UniqueIdentifier 会更好吗?还有其他方法可以解决这个问题吗?

4

2 回答 2

4

您能想象为任何一个实体存储数十亿条记录吗?如果是这样,您可以切换到BigInt另一个称为Int64. 当然,一旦您开始看到数百万条记录,您就需要开始考虑数据分区和归档以避免严重的性能问题。如果您有一个基础架构团队,您可能想让他们知道您预计会大量使用并且需要一个认真的维护计划。如果您是基础架构团队,那么您最好看书!

于 2012-08-22T23:44:29.900 回答
2

如果您真的认为拥有超过 20 亿条评论是合理的,那么请BIGINT在 SQL Server 中使用(Int64在 .Net 中)。这需要 8 个字节的存储而不是 4 个字节INT,但是如果您使用数据压缩,您可以为前 2+十亿个值抵消这个。

于 2012-08-22T23:44:12.037 回答