MySQLから
CHAR
の違い およびVARCHAR
値は保存方法です。CHAR (10)
データにはスペースが右に埋め込まれているため、使用する文字数に関係なく10バイトのストレージが必要です。VARCHAR (10)
1バイト(1バイトの文字セット)+長さのプレフィックス(長さが255以下の場合は1、それ以外の場合は2 ... EXPLAIN
のkey_lenの理由がわかりません 2バイト追加)
末尾の空白の意味がわかりませんが、VARCHAR
で末尾のスペースの超過を参照していると想像できます。 CHAR
では、これらは警告とともに切り捨てられます。 これらのスペースの列はサイレントに切り捨てられます。これには何らかの意味がありますCHAR
最後に末尾の空白を付けて保存されます。
このCHAR
の文字数がわかります またはVARCHAR
同じですが、ストレージには1文字あたり1〜4バイトが必要です。ここ
サポートされている文字セットのリストであり、ここ 1文字あたりのバイト数。
冗長行フォーマットの特性 :
COMPACT行フォーマットの特性 :