その他

【MySQL】CHAR と VARCHAR

その他
この記事は約1分で読めます。

CHAR と VARCHAR

文字列型の主要なものとして、CHAR と VARCHARが挙げられる。

char(128)
varchar(64)

後ろのカッコにバイト数を指定できる。

CHAR

データは固定長。

char(100)

上記のように指定した場合、与えた文字列が100バイトに満たない場合は空白文字が末尾に追加され強制的に100バイトになる。

0 ~ 255 まで指定できる。

末尾に追加された空白文字は、取り出し時に自動的に取り除かれる。もともと末尾に空白文字を含むデータでも、同じように空白は取り除かれる。

VARCHAR

データは可変長。

char(100)

100バイトまで受け付けるのはもちろんのこと、1バイトの文字列を与えた場合はそのまま1バイト。

0 ~ 65,535 まで指定できる。

どちらを使うか?

基本的には VARCHARで良い。

CHARの方が早いという意見もあるが、大した差はないとする意見もある。
ちなみにMySQL公式ドキュメントには、特に性能差についての言及は見当たらなかった。