用于长期可伸缩性的int或long变量类型

时间:2012-01-20 14:22:23

标签: c# asp.net database-design scalability

我正在构建一个应用程序,对于我的几个数据库字段,我目前正在使用int,对于定义使用这些值的对象模型的类也是如此。

后来(即1 - 2年,我希望可能少),我可能会超过20亿条目。那么改变数据类型会是一个相对大的交易,还是我需要花费20-30分钟将所有数据库字段和类从int更改为long,而这很容易做到。

感谢您的建议。

3 个答案:

答案 0 :(得分:2)

如果表中有那么多行,从32位int升级到64位int可能是一个非常慢的操作,因为它会导致大量的重新分页。现在,这将是一个快速的变化。但是,如果您现在直接转到64位字段,显然在此期间您的磁盘空间使用量会增长得更快。如果您能在计划中承担这笔费用,那么现在就值得做。

答案 1 :(得分:1)

如果你的意思是int64而不是int32,那么如果你认为你需要它并且你有资源就可以完成它。

作为.net你不能隐式地从Int64转换为int32,所以编译会选择那些,你需要寻找你已经做过的任何显式转换。

答案 2 :(得分:0)

如果这是一个Id字段,你应该考虑使用理论上应该绰绰有余的Guid