2011-08-04 8 views
0

列IDがintデータ型のテーブルを作成しました。しかし、int型は、テーブルに入れるかもしれない値のいくつかを保持できないかもしれないことに気付きました。私がbigintとして列を定義すると、その列に値を入れる前に "space"を占有するのか、それともデータベース上の領域を使用するのでしょうか?私はSQL Server 2008 R2を使用しています。ありがとうございました。SQLサーバーのデータ型int Vs Big int

答えて

5

intは常に4バイトを使用し、bigintは常に8バイトを使用します。格納された実際の値は、フィールドのサイズには影響しません。

+0

ありがとうございます。もう1つのクエリ。 bigint列にint型の "124"がある場合、これは3文字×8バイトのスペースを使いますか? – Jim

+0

これは完全に真実ではありません。データ圧縮を実装すると、すべてのバイトが必要でない場合に使用される領域を減らすことができます。値「124」は、圧縮されている「TINYINT」に必要なスペースに収まることができます。しかし、ジムは文字を数えないように注意し、バイト数に直接関係していると仮定してください。 –

1

数字を入力するたびに、たとえ1であっても、完全な8バイトを使用します。したがって、余分なストレージオーバーヘッドは4バイト*行数です。あなたが2,147,483,647人よりも大きくなることを心配しているならば、bigintを使うべきです。

+0

@Spencer ...ありがとう。申し訳ありませんが、以前は答えが見えませんでした...今は意味があります。クリスは感謝しています。 – Jim

関連する問題