任意のサイズのデータ​​に対して、BLOBはvarcharよりも効率的ですか?


9

データベースをセットアップするときは、かなり長い可能性のあるデータに最も効率的なデータ型を使用したいと思います。現在私のプロジェクトは、曲のタイトルとその曲に関する考えを保存することです。一部のタイトルは5文字または100文字を超える場合があり、思考はかなり長く続く可能性があります。

8000に設定されたvarcharを使用するか、blobを使用する方が効率的ですか?blobはvarcharと同じですか?保持されているものに関係なく割り当てられたセットサイズがありますか?それとも単なるポインタであり、実際にはテーブル上の多くのスペースを使用しませんか?KBでBLOBの特定のセットサイズはありますか、それとも拡張可能ですか?

回答:


12

BLOB ではなくTEXTを使用することをお勧めします。

主な違い

  • TEXTとBLOBはテーブルに格納され、テーブルには実際のストレージの場所へのポインタしかありません。

  • VARCHARはテーブルにインラインで格納されます。

主なガイドライン

  1. ほとんどの場合、テキスト形式のメッセージはTEXTとして保存する必要があります(最終的に任意の長さになります)

  2. 文字列属性はVARCHAR(宛先ユーザー名、件名など)として格納する必要があります。


VARCHARをいつ使用するか、およびTEXTをいつ使用するかを選択する方法については、これらのスレッドのスタックオーバーフローについて詳しく説明しています。

  1. MySQL:VARCHARとTEXTが大きいですか?

  2. MySQL varchar(2000)vsテキスト?

MySQLフォーラムには、このためのパフォーマンス比較スレッドもあります。


それらのリンクをありがとう。彼らは私が持っていたいくつかの質問に答えました、そして私は確かにテキストを使用していました。サーバー上で占める物理的なスペースに関しては、私が探していたものではありませんでしたが、それが小さなプロジェクトである限り、それは重要ではありません。後でもっと大きなプロジェクトを始めたら、私はそれを知る必要があります。
BillyNair

0

複雑なデータ型がシリアル化されている場合、つまり単一のテーブルに複雑なクラスを格納する場合にのみ、blobを使用する必要があると思います。文字列(または同等のもの)のみを保存する場合は、blobを使用しないでください。

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