BigInt
、、の違いは何だろうMediumInt
と思いましたInt
... 明らかに、これらがより大きな数値を許容すると思われますが、Int(20)
またはを作成BigInt(20)
すると、必ずしもサイズに関するものではないように思われます。
何か洞察があれば素晴らしいのですが、ちょっと興味があります。私はしばらくの間MySQLを使用していて、型を選択する際にビジネス ニーズを適用しようとしていますが、この側面を理解したことがありませんでした。
ベストアンサー1
見る数値型
INT
4 バイトの符号付き整数です。BIGINT
8 バイトの符号付き整数です。
それぞれは、それぞれのバイト数に格納できる値より多くも少なくも受け入れません。つまり、では2 32 個INT
の値、 では 2 64 個の値になりますBIGINT
。
20 はほとんど意味がありINT(20)
ませBIGINT(20)
ん。これは表示幅のヒントです。ストレージや列が受け入れる値の範囲とは関係ありません。
実際には、次のZEROFILL
オプションにのみ影響します。
CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;
+----------------------+
| bar |
+----------------------+
| 00000000000000001234 |
+----------------------+
INT(20)
MySQL ユーザーがこれを見て、 に類似したサイズ制限であると想定することは、よくある混乱の原因ですCHAR(20)
。これは事実ではありません。