2011-07-01 4 views
7

MySQL 5以降、VARCHARの長さは最大65,000です。 VARCHARはインラインで格納されます。これは、テーブル外に格納されるTEXTではなく、より高速な検索を意味します。つまり、ドキュメントでは、MySQLがLONG VARCHARを正確にTEXTと扱うと述べています。 this SourceによればMySQLはどの時点でTEXT colsのようなVARCHAR colsの処理を開始しますか?

:長いVARCHARはINNODBによって同じ 方法で処理されたウェルなどの記憶前向きBLOB、TEXTから として

。このため、Innodb マニュアルでは、BLOBよりむしろ ではなく、「長い列」と呼ばれています。

MySQLはいつTEXTのようにVARCHARを処理し始めますか? MySQLはどの文字数でこの区別を行い、VARCHARはインラインで格納されなくなりますか?

+1

、私は 'VARCHAR'は、私は信じている255文字だった、それは古い制限を超えた後になり、長い形式、に移動したときに、それは次のようになり想像 - 古い制限を確認してください。 – Orbling

答えて

5

短い回答:「長い」VARCHARは通常のVARCHARであり、インラインになります。

MySQLはまっすぐなVARCHARを魔法のように扱い始めません。常にインラインで保存されます。 5.0.3では、VARCHARの上限が65,535バイトに緩和されました。また、255文字以上の場合は、2バイトのヘッダーを使用します。この制限は、65,535バイトの最大行サイズにも適用されます。 LONG VARCHARは実際にはMEDIUMTEXTにバックコンパイルする別の型です。

参照:推測でhttp://dev.mysql.com/doc/refman/5.0/en/char.htmlhttp://dev.mysql.com/doc/refman/5.0/en/blob.html

関連する問題