【MySQL】CHAR型とVARCHAR型の違い
公開日:
更新日:
カテゴリー: MySQL
MySQLのフィールドに指定するデータ型にCHAR型とVARCHAR型(いずれも文字列型)がありますが、この違いについてまとめています。
CHARとVARCHARの違い
CHARとVARCHARの違いは、「挿入に必要なサイズ」です。
型名 | 値の範囲(バイト) | 挿入に必要なサイズ |
---|---|---|
CHAR(M) | 255 | Mバイト |
VARCHAR(M) | 255 | X+1バイト |
両方の型とも文字列のデータを挿入するときに指定しますが、CHAR(10)とVARCHAR(10)では実際にデータを挿入した時に違いが生じます。
例えば、「A」という文字は半角英数字なので1バイトの容量を必要としますが、CHAR(10)型のフィールドに「A」を挿入した場合、消費容量は10バイトとなります。
一方、VARCHAR(10)型のフィールドに「A」を挿入した場合、消費容量は1バイト(正確には2バイト)です。
VARCHARのみ使用すればいいのでは?
だとしたら、CHAR型ではなくVARCHAR型だけ使用すればいいことになりますが、CHAR型は格納するデータのバイト数に関わらずすべてのレコードで同じ容量のデータを格納するため、MySQLサーバのスピードが向上します。
しかし、CHAR(100)のように大きめのデータを格納しようとすると逆にメモリを消費することもあります。
そのため基本的にはCHAR型を遣う明確な理由がない場合は、VARCHARを使えばいいのではないかと思います。
なお、MySQLでは、ひとつのテーブルにCHAR型とVARCHAR型を混在して使うことはできません。
※MySQL4では使えないと記憶してたのですが、現在はCHAR型とVARCHAR型を混在して使うことは可能なようです(未確認)
あわせて読んでほしい!
コメント
まだコメントはありません。
コメントフォーム