質問: MySQL - 整数列のサイズ制限 私はテーブル構造を作成するためにphpMyAdminを使用しています。 I can read from the documentation pages on MySQL about size limits for Integer Types: MySQL Integer Types Reference --- だから私はここで列を作ることとちょっと混乱しています。 I want to create a column in the table: `tbl_note_categories` called `notescounter` 特定の `categoryid` を使用して `tbl_notes` に何千ものノートを作成するとは思いません。しかし、私は各カテゴリIDに数百のノートを作成すると信じています。 私は、tinyint、smallint、mediumintの間で選択するその時点にいる。 上のドキュメントのリンクによると、私はsmallintが私の最良の選択だと思っています。 だからここに私の混乱がある。 PhpMyAdminは **Length/Values** パラメータを指定するよう求めます。 私はこの新しい列( `notescounter` )が署名されていないことを確認して、65536までにします。 それは長さ/値が(5)になることを意味しますか? 私は長さが文字の長さだと思っていますが、わかりません。 (varcharと比較して) !Snapshot of New column in PhpMyadmin
回答: いいえ、これはMySQLに関するよくある誤解です。実際、「長さ」は整数のサイズや格納可能な値の範囲には影響しません。 * `TINYINT` is always 8 bits and can store 28 distinct values. * `SMALLINT` is always 16 bits and can store 216 distinct values. * `INT` is always 32 bits and can store 232 distinct values. * `BIGINT` is always 64 bits and can store 264 distinct values. MEDIUMINTもありますが、MySQLを扱うエンジニアは、MEDIUMINTは常に内部的に32ビットINTに昇格すると言います。したがって、MEDIUMINTを使用すると実際にはメリットはありません。 表示の長さは *only* です。これは `ZEROFILL` オプションを使用する場合にのみ重要です。 See an example in my answer to What is the difference (when being applied to my code) between INT(10) and INT(12)?