重複の可能性:
MySQL: 大きな VARCHAR と TEXT?
VARCHAR
現在は 65k バイトを使用できるため、いつ ? の代わりに使用する必要がTEXT
ありVARCHAR
ますか?
重複の可能性:
MySQL: 大きな VARCHAR と TEXT?
VARCHAR
現在は 65k バイトを使用できるため、いつ ? の代わりに使用する必要がTEXT
ありVARCHAR
ますか?
longは の/フィールドVARCHAR
と同じ方法で格納されます。TEXT
BLOB
InnoDB
ストレージの将来の BLOB から、TEXT と long VARCHAR は、Innodb によって同じ方法で処理されます。これが、Innodb マニュアルが BLOB ではなく「長い列」と呼ぶ理由です。
これらの列にインデックスを付ける必要がない限り (その場合ははるかに高速です)、長いフィールドにoverVARCHAR
を使用する理由はありません。長さに応じてデータ取得を調整するためのエンジン固有の最適化がいくつかあり、正しい列タイプを使用する必要があります。これらを活用するために。VARCHAR
TEXT
MySQL
MyISAM
このトピックに関する詳細なディスカッションを使用している場合は、こちらを参照してください。
TEXT
実際のストレージの場所へBLOB
のポインタを持つだけのテーブルで、テーブルから離れて格納されます。
VARCHAR
テーブルとインラインで格納されます。VARCHAR
サイズが適切な場合は高速です。
このテストによると、VARCHAR
はテキストの約 3 倍の速さです。
テキストは、不確定な長さの非常に長い文字列に使用する必要があります。また、TEXT フィールドを返すクエリは、対応する VARCHAR よりもはるかに遅くなる傾向があります。