2009-08-20 8 views

答えて

18

通常、 text列は実際に行から離れて格納されるため、行自体のスペースを占有しません。代わりに、行はtext列へのポインタを保持します(になりますが、行は4バイト(システムに依存します)だけですが、text列自体は空のままです。

ここで、varcharカラムは、挿入時に最大値にスペースを割り当てますが、その内容に必要なスペースのみを占有します。しかし、charの列は、常に指定されたスペースを使用します。だから、各列に「ワッフル」というフレーズが表示されます:

varchar(15): 'waffles' 
char(15): 'waffles  ' 
text:  'waffles' 

うまくいけば、これが役に立ちます。

+1

これは、すべてのタイプのテキスト、つまりMediumText、LongTextなどに当てはまりますか?私は今のところinno-dbエンジンを使用しています。また、それが何らかの圧縮をしているかどうかを確認したかったのですが、テキストフィールドに10バイトしか入れていない場合は、圧縮を行うか64 KB全体を取得しますか? – user2098324

関連する問題