データベース内にいくつかのテーブルがあり、自動インクリメント ID フィールドが整数値として設定されています。これらのテーブルには毎秒レコードが追加されます。整数値が不足するとどうなりますか? これは問題を引き起こしますか?このように急速に拡大するテーブルの自動インクリメント値を処理する方法について何か提案はありますか?
2 に答える
2
INT
1 から始まるtype を使用すると、 20 億行を超える可能性のある行を取得できます。これは、ほとんどの場合、十分すぎるはずです。ではBIGINT
、およそ922 千兆(15 個のゼロを含む 922 - 922,000 億) が得られます。これで十分ですか??
1 から始まるを使用し、INT IDENTITY
1 秒ごとに行を挿入すると、20 億の制限に達するまでに66.5 年かかります....
1 から始まるa を使用し、BIGINT IDENTITY
毎秒 1,000 行を挿入すると、922,000 兆の制限に達するまでに、気が遠くなるような 2億 9,200 万年が必要になります ....
詳細については、MSDN Books Onlineを参照してください (すべてのオプションを含む) 。
于 2013-03-20T12:56:02.547 に答える
1
それはたくさんの行です。ドキュメントから:
-2^31 (-2,147,483,648) から 2^31 - 1 (2,147,483,647) までの整数 (整数) データ。ストレージサイズは 4 バイトです。int の SQL-92 シノニムは整数です。
代わりにGUID を主キーとして使用することを検討しましたか?
于 2013-03-20T11:15:21.697 に答える