MySQLのBLOBデータ型とTEXTデータ型の違いは何ですか?


117

何でblob、何でtext?違いは何ですか?

いつ使用する必要がありblob、いつtextデータ型として必要ですか?

blobtextには、mediumblob== mediumtextsmallblob== があるためですsmall text。それらは同じ意味を持っていますか?

そして、これを見てくださいMEDIUMBLOBMEDIUMTEXT L+ 3バイト、どこL < 224

なにL


私はこの記事があなたの質問の答えだと思う stackoverflow.com/questions/7071662/mysql-text-vs-blob-vs-clob
earlonrails

回答:


103

TEXTとCHARは、時間に関連付けられている文字セットとの間で変換を行います。BLOBとBINARYは単にバイトを格納します。

BLOBはバイナリデータの格納に使用され、Textは大きな文字列の格納に使用されます。

BLOB値はバイナリ文字列(バイト文字列)として扱われます。それらには文字セットがなく、ソートと比較は列値のバイトの数値に基づいています。

TEXT値は非バイナリ文字列(文字列)として扱われます。それらには文字セットがあり、値は文字セットの照合に基づいてソートおよび比較されます。

http://dev.mysql.com/doc/refman/5.0/en/blob.html


3
したがって、「wordpress post」などの長いテキストを格納するためにテキストを使用しますか?そして、ブロブを使用して非常に長いURLアドレスを保存しますか?では、BLOBやテキストを使用する代わりに、varcharを使用して非常に長いテキストを格納しないのはなぜでしょうか。メモリの計算では、varcharは非常にシンプルです。たとえば、create table website(website_name varchar(30))し、website_name "stackoverflow"を入力して、必要なメモリを13バイトにします
nencor

5
TEXTはVarchar(MAX)に置き換えられますが、今のところmysqlのバージョンに応じて、ブログ本文の投稿などの大きなテキスト投稿にはTEXTを使用します。非常に長いURLアドレスや大量のテキストを格納するためにBLOBを使用しないでください。通常は、画像やその他のバイナリベースのオブジェクトを格納するために使用されます。個人的には、BLOBやTEXTを使用せず、ユーザーIDベースのフォルダーに比べて大量のデータをxmlファイルに格納します。
Darcey

バイナリベースのオブジェクトが理解できません。つまり、Blobデータ型を使用して写真をデータベースに保存できますか?フォルダのように?私は、バイナリについて知っていることすべてが唯一の1または0である
nencor

1
@nencorはい、画像をデータベースに保存できます。アーカイブを保存することもできます。ただし、フォルダーは実際にはファイルシステムの機能であるため、フォルダーをデータベースに保存することはできません。(ただし、最終的には完全なファイルシステムをISOファイルとしてデータベースに保存することもできます)
Martin Thoma

@ martin-thomaサーバーサイドにMongoDBデータベースがあるアプリケーションがあります。アプリケーションのモバイルコンポーネントはSQLLiteを使用します。MongoDBデータベースとSQLLiteデータベースの間でデータをブリッジする方法が必要です。MongoDBはObjectIdを使用してデータを一意に識別します。SQLLite(RDBMSワールド)にはMongoDB ObjectIdsを直接表現する方法がないため、ObjectIdsをBLOBタイプとして保存できるかどうか疑問に思っていました。それは合理的な解決策のように聞こえますか?パフォーマンスが低下しますか?他の欠点はありますか?
CSルイス

10

TEXTおよびCHARまたはnchar。通常はプレーンテキストに変換されるため、文字列のようなテキストのみを格納できます。

BLOBとBINARYは、イメージなどのバイナリデータを格納できることを意味し、単にバイトを格納します。


画像などのバイナリデータを保存するとはどういう意味ですか?画像のURLを意味しましたか?
nencor 2012

10

Blobデータ型は画像などのバイナリオブジェクトを格納し、テキストデータ型はWebページの記事などのテキストオブジェクトを格納します


7

BLOBは、可変量のデータを保持するバイナリ文字列です。ほとんどの場合、BLOBはパスやファイル情報の代わりに実際のイメージバイナリを保持するために使用されます。テキストは大量の文字列文字用です。通常、ブログまたはニュース記事はTEXTフィールドを構成します

この場合のLは、ストレージ要件を示すために使用されます。(長さ|サイズ+ 3)224未満である限り。

リファレンス:http : //dev.mysql.com/doc/refman/5.0/en/blob.html


3

高性能のMysqlの本によると:

BLOBファミリとTEXTファミリの唯一の違いは、BLOB 型は照合または文字セットなしでバイナリデータを格納することですが、TEXT 型には文字セットと照合があります。


1

BLOBは2 GBを超えるバイナリデータを格納します。BLOBの最大サイズは4 GBです。バイナリデータとは、非構造化データを意味します。つまり、画像、オーディオファイル、vedioファイル、デジタル署名

テキストは大きな文字列を格納するために使用されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.