mediumblob
ルックアップのパフォーマンスに関して、通常の列と比較して追加のオーバーヘッドが発生しますか?
挿入されたデータごとに標準のディスク オーバーヘッド (データのバイト数 + 3 バイト) が発生することは十分承知していますが、(たとえば)where
ステートメントを含むルックアップを実行し、join
他のすべての列で単純なよりも、列がなかったmediumblob
場合とパフォーマンスは異なりますか?mediumblob
mediumblob
ルックアップのパフォーマンスに関して、通常の列と比較して追加のオーバーヘッドが発生しますか?
挿入されたデータごとに標準のディスク オーバーヘッド (データのバイト数 + 3 バイト) が発生することは十分承知していますが、(たとえば)where
ステートメントを含むルックアップを実行し、join
他のすべての列で単純なよりも、列がなかったmediumblob
場合とパフォーマンスは異なりますか?mediumblob
簡単な答え:おそらくそうではありません;)
長い答え:
この興味深いブログ投稿を読むことをお勧めします:
COMPACTおよびREDUNDANT行フォーマット(Innodbプラグインの前に使用され、InnodbプラグインおよびXtraDBでは「Antelope」という名前)を使用すると、Innodbは行全体をInnodbページに収めようとします。少なくとも2行が各ページといくつかのページデータに収まる必要があるため、制限は約8000バイトになります。行が完全に収まる場合、Innodbはそれをページに保存し、外部BLOBストレージページを使用しません。
この場合、はい、おそらくパフォーマンスの低下が見られます。
逆に:
innodb_file_formatがBarracudaに設定され、ROW_FORMAT=DYNAMICまたはROW_FORMAT=COMPRESSEDでテーブルが作成されると、長い列の値は完全にオフページに格納され、クラスター化インデックスレコードにはオーバーフローページへの20バイトのポインターのみが含まれます。
この場合、目立つとしても、パフォーマンスコストはわずかであると思います。ただし、いつものように、YMMVとあなたは実際のデータセットでテストする必要があります。