15

SQL Server で新しいデータベースを作成する場合、主キーを int32 または int64 として使用する必要がありますか?

int32の方が速いですか?

int32 を使用したくない理由は、int32 データ型の上限によって、特定のテーブルでの合計トランザクション数が 2,147,483,647 に制限されるのではないかということです。そこに大量のデータを保存するつもりはありませんが、常に新しいレコードを作成し、古いレコードを削除する必要がある場合はどうすればよいでしょうか? 後で多くのトランザクションを行うと、キーが不足することはありませんか? これをすでに処理する方法はありますか?または、長いデータ型を使用する必要があります。

4

1 に答える 1

32

1 から始まる型INT(int32) を使用すると、 20 億行を超える可能性のある行を取得できます。これは、ほとんどの場合、十分すぎるはずです。(int64) を使用BIGINTすると、おおよそ9 京(18 個のゼロを含む 9 - 9'223'000 億) になります。

いくつかの簡単な計算:

  • INT IDENTITY1 から始まるを使用し、 1秒ごとに行を挿入する場合、20 億の制限に達するまでに66.5 年かかります ....

  • BIGINT IDENTITY1 から始まるを使用し、毎秒 1,000 行を挿入すると、9.22 京の制限に達するまでに、気が遠くなるような 2億 9,200 万年が必要になります ....

詳細については、MSDN Books Onlineを参照してください (すべてのオプションを含む) 。

于 2013-02-02T13:34:23.150 に答える