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