MySQL には、混同しやすい 2 つのフィールド タイプ、つまり TEXT と BLOB があります。特に、独自のブログ プログラムを作成するブロガーは、ブログのテキスト フィールドに TEXT タイプを選択するか BLOB タイプを選択するかわかりません。
以下にいくつかの違いがあります:
1. 主な違い
TEXT と BLOB の主な違いは、BLOB はバイナリ データを格納し、TEXT は文字データを格納することです。現在、ブログ コンテンツ内のほとんどすべての画像はデータベースにバイナリで保存されず、その代わりに画像がサーバーにアップロードされ、テキスト内の タグを使用して参照されます。 BLOB は画像をバイナリに変換してデータベースに保存できます。
2. 型の違い
BLOBにはTINYBLOB、BLOB、MEDIUMBLOB、LONGBLOBの4つの型があります。値を保持できる最大長が異なるだけです。
TEXTにもTINYTEXT、TEXT、MEDIUMTEXT、LONGTEXTの4種類があります。これらの型には、BLOB 型と同じ最大長と記憶域要件があります。
三、文字セット
BLOB列には文字セットがなく、ソートと比較は列値バイトの数値に基づいて行われます。 TEXT 列には文字セットがあり、値は文字セットの照合規則に従って並べ替えおよび比較されます
4. 大文字と小文字の区別
TEXT または BLOB 列の格納または取得プロセス中に、大文字と小文字の変換はありません、どれも同じです!
5. 厳密モード
非厳密モードで実行している場合、列タイプの最大長を超える値を BLOB または TEXT 列に割り当てると、値が確実に収まるように切り捨てられます。切り捨てられた文字がスペースでない場合は、警告が生成されます。厳密な SQL モードを使用すると、エラーが生成され、値は警告でインターセプトされずに拒否されます。
6. その他
BLOB 列および TEXT 列の値を保存または取得するときに、末尾のスペースを削除しないでください。
BLOB 列と TEXT 列のインデックスの場合、インデックス接頭辞の長さを指定する必要があります。
BLOB 列と TEXT 列にはデフォルト値を設定できません。
並べ替えの際には、列の最初の max_sort_length バイトのみが使用されます。 max_sort_length のデフォルト値は 1024 です。
長い値を含む BLOB または TEXT 列で GROUP BY または ORDER BY を使用するもう 1 つの方法は、max_sort_length を超えるバイトを意味したい場合に、列の値を固定長オブジェクトに変換することです。標準的なアプローチは、SUBSTRING 関数を使用することです。
BLOB または TEXT オブジェクトの最大サイズはその型によって決まりますが、クライアントとサーバー間で実際に受け渡しできる最大サイズは、利用可能なメモリの量と通信キャッシュ領域のサイズによって決まります。 max_allowed_packet 変数 の値を変更することでメッセージ バッファーのサイズを変更できますが、サーバー プログラムとクライアント プログラムの両方を変更する必要があります。
以上がMySQL の TEXT フィールド タイプと BLOB フィールド タイプの違いを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。