私は、varchar
データ型について疑問を抱きました。私たちは皆知っている。MySQL varcharとIBM DB2 varchar dataypeの比較
char
は、固定長データ型です。したがって、char値の格納サイズは、列の最大サイズの と同じです。しかし、 "varchar"の場合は可変長データ型の ですので、varchar
値の格納サイズはこの列の最大サイズではなく、入力されたデータの実際の長さです。だから、varchar
は、文字/テキストの種類のデータを保存し、将来の使用のために未使用のメモリを保存する必要があるときに、一般的に使用されます。
最近私は、IBM DB2の場合、テーブルの残りの列の中間にvarchar
列を使用すると、その特定の列の文字の格納サイズは、 varchar
列のサイズ。
EX:
- のfirstName:CHAR(50)
- lastNameの:VARCHAR(50)
- EMAILID:CHAR(50)
これで、このテキスト( 'Majhi')をデータ型varchar(50)
のcoloumn "lastName"に保存する場合、実際には5charsを取るのではなく、50chのストレージサイズを使用しますテキスト( 'マジ')。
これは、IBM DB2では、テーブルのcoloumnsの残りの中間にある任意のvarcharデータ型coloumnを含めて、char
データ型と同じように機能します。したがって、メモリの最適化は起こりません。
私たちのMySQLが同じように動作しているか、varchar
dataype coloumnがどこに存在しているのか分かりません。したがって、varchar
データ型列が動作する必要があります。
行の真ん中にフィールドがある場合、varchar(50)で50文字を使用して 'Mahji'を格納するという主張が正しくありません。実際の値は5バイト、文字列の長さは4バイトになります。列がNULL可能である場合、NULL標識のために1バイト以上が存在します。 –