2021.09.27 - 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を指定している時以外は関係ない

 

コメントを残す