- Note

MySQLデータ型について

 

文字

3バイト文字の場合
CHAR(m) 固定長文字型(文字数指定) 0~255文字 255
VARCHAR(m) 可変長文字型(文字数指定) 0~65535バイト 2万1845
TYNYTEXT テキスト型 0~255バイト 85
TEXT テキスト型 0~65535バイト 2万1845
MEDIUMTEXT テキスト型 0~16777215バイト 55万92405
LONGTEXT テキスト型 0~4294967295バイト 14億31655765

VARCHAR型とTEXT型
innodbではvarcharもtextも768バイト(約221字)まではレコード内に保存され、効率的に処理される。それ以上の場合、レコードとは別に保存され、データベースにはそのポインターのみが保存されます。
VARCHAR型では、文字列がデータベースに直接保存されます。TEXT型の文字列は、データベースとは別に保存され、データベースにはそのポインターのみが保存されます。そのため処理速度等の問題から、短い文字列であればVARCHARを使った方が、効率的に処理できると言えます。(isam)

MySQLのインデックス長は767バイトまで

utf8mb4は1文字ごとに最大4バイト使用する
1バイト a-zA-Z0-9記号(ascii)
2バイト アラブ文字・ギリシア文字など
3バイト 半角カタカナ・全角英数字
3バイト ひらがな・カタカナ・漢字
4バイト マイナーな漢字
4バイト 絵文字

数値

最大数 UNSIGNED サイズ
TINYINT -128~127 0~255 1
SMALLINT 32768~32767 3万 0~65535 2
MEDIUMINT -8388608~8388607 838万 0~16777215 3
INT(INTEGER) -2147483648~2147483647 21億 0~4294967295 4
BIGINT -9223372036854775808~9223372036854775807 922京 0~18446744073709551615 8

INT(m)のmは最大表示幅(表示桁数)なのでZEROFILLを指定している時以外は関係ない

少数

範囲 UNSIGNED サイズ
FLOAT -3.402823466E+38 から -1.175494351E-38 0 1.175494351E-38 から 3.402823466E+38 0 4
DOUBLE, REAL -1.7976931348623157E+308 から -2.2250738585072014E-308 0 2.2250738585072014E-308 から 1.7976931348623157E+308 0 8
DECIMAL, NUMERIC 変動

日付

サイズ
YEAR 2018
(1901~2155)
1 バイト
DATE 2022-11-07 3 バイト
TIME 22:07:17 3 バイト + 小数秒ストレージ
DATETIME 2022-11-07 22:07:17 5 バイト + 小数秒ストレージ
TIMESTAMP 166780264 4 バイト + 小数秒ストレージ

コメントを残す