MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
テキストデータを格納する大きな BLOB を保存する場合、まずそれを圧縮することを考慮します。 テーブル全体が InnoDB
または MyISAM
によって圧縮されている場合は、この技法を使用しないでください。
複数のカラムのあるテーブルで、BLOB カラムを使用しないクエリーのメモリー要件を削減するには、BLOB カラムを個別のテーブルに分割し、必要に応じて、結合クエリーでそれを参照することを考慮します。
BLOB 値を取得し、表示するためのパフォーマンス要件は、ほかのデータ型と大きく異なることがあるため、BLOB 固有テーブルを別のストレージデバイスまたは個別のデータベースインスタンスに置くことができます。 たとえば、BLOB を取得するには、大量の順次ディスク読み取りが必要で、SSD デバイスより、従来のハードドライブの方が適しています。
バイナリ VARCHAR
カラムの方が同等の BLOB カラムより推奨されることがある理由については、セクション8.4.2.2「文字および文字列型の最適化」を参照してください。
きわめて長いテキスト文字列に対して、同等性をテストする代わりに、個別のカラムにカラムのハッシュを格納し、そのカラムにインデックスを設定して、クエリー内のハッシュ値をテストします。 (MD5()
または CRC32()
関数を使用して、ハッシュ値を生成します。) ハッシュ関数は、異なる入力で重複した結果を生成することがあるため、引き続きクエリーに句 AND
を含めて、誤った一致に対して保護します。パフォーマンスは、ハッシュ値の小さく、簡単にスキャンされるインデックスからメリットが得られます。
blob_column
= long_string_value