1

これは、作成中のサイトや他の大きなサイトの考慮事項にすぎません。

一部のテーブルのIDを格納するためにIdentityColumnを使用しておりInt32、データベースから取得したIDの値を保持するために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

1つのエンティティに何十億ものレコードが保存されていると想像できますか?もしそうなら、あなたBigIntは別の方法で知られているに切り替えることができますInt64。もちろん、何百万ものレコードが表示され始めたら、深刻なパフォーマンスの問題を回避するために、データのパーティション分割とアーカイブについて考え始める必要があります。インフラストラクチャチームがある場合は、大量の使用が予想され、深刻なメンテナンス計画が必要になることをチームに知らせたい場合があります。あなたがインフラストラクチャチームであるなら、あなたは本を打ったほうがいいです!

于 2012-08-22T23:44:29.900 に答える
2

コメントが20億を超えることが本当に合理的であると思われる場合はBIGINT、SQL Server(Int64.Net)で使用してください。これには、の4バイトではなく8バイトのストレージが必要INTですが、データ圧縮を使用する場合は、最初の20億の値でこれを相殺できます。

于 2012-08-22T23:44:12.037 に答える