MySQLのtinyint、smallint、mediumint、bigint、intの違いは何ですか?


Answers

必要な記憶容量の大きさと数字の大きさ

SQL Server上で

tinyint 1バイト、0〜255

smallint 2バイト、-2 ^ 15(-32,768)〜2 ^ 15-1(32,767)

int 4バイト、-2 ^ 31(-2,147,483,648)から2 ^ 31-1(2,147,483,647)

bigint 8バイト、-2 ^ 63(-9,223,372,036,854,775,808)から2 ^ 63-1(9,223,372,036,854,775,807)

あなたはすべての4に数字1を格納することができますが、bigintは8バイトを使用し、tinyintは1バイトを使用します

Question

MySQLのtinyint、smallint、mediumint、bigint、intの違いは何ですか?

どのような場合にこれらを使用すべきですか?




これらのデータ型が実際に使用されるようになると、特定の整数型を使用することは、過剰な使用や使用されている可能性があることを理解することが非常に重要です。 たとえば、表のemployeeCountにintegerデータ型を使用すると、従業員は〜20億〜20億または0〜約40億(符号なし)の整数値の範囲をサポートするため、過剰な作業になる可能性があります。 したがって、たとえWalmartなどの米国最大の雇用者のうち、およそ220万人の従業員がemployeeCount列に整数データ型を使用していると考えるとしても、それは不要です。 そのような場合には、例えば、mediumint(0から1600万(署名なし)をサポートする)を使用します。 あなたの範囲が異常に大きいと予想されるならば、ダニエルのノートから見ることができるようなbigintは、私が解読したいと考えるよりも大きな範囲をサポートしていると考えるかもしれません。




データ型範囲の保存

bigint  -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)    8 Bytes
int -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)    4 Bytes
smallint    -2^15 (-32,768) to 2^15-1 (32,767)  2 Bytes
tinyint 0 to 255    1 Byte

次の例では、bigint、int、smallint、およびtinyintの各データ型を使用してテーブルを作成します。 値は各列に挿入され、SELECT文で返されます。

CREATE TABLE dbo.MyTable
(
  MyBigIntColumn bigint
 ,MyIntColumn  int
 ,MySmallIntColumn smallint
 ,MyTinyIntColumn tinyint
);

GO

INSERT INTO dbo.MyTable VALUES (9223372036854775807, 214483647,32767,255);
 GO
SELECT MyBigIntColumn, MyIntColumn, MySmallIntColumn, MyTinyIntColumn
FROM dbo.MyTable;



Links