Mysqlは、5バイトと1バイトの長さを格納します。 varcharが255より大きい場合、長さとして2バイトが格納されます。
これは列の文字セットに依存することに注意してください。文字セットがutf8の場合、mysqlは1文字あたり最大3バイトを必要とします。一部のストレージエンジン(メモリなど)では、文字セットの文字ごとに常に最大バイト長が必要になります。
列をNULL可能にするということは、mysqlが1行あたり最大8つのNULL可能列ごとに追加のバイトを確保する必要があることを意味します。これは「ヌルマスク」と呼ばれます。
mysql内のストレージエンジン間でも一貫性がありません!