私は2つの可能な実装のどちらかを決定しようとしており、最良のものを選択したいと思っています:)
現在単純なフィールドが 3 つしかないテーブルに、オプションの BLOB フィールドを追加する必要があります。新しいフィールドが使用されるケースは 10% 未満、場合によっては 5% 未満であると予測されるため、ほとんどの行で null になります。実際、ほとんどのお客様はそこに BLOB データを持っていないでしょう。
同僚の最初の傾向は、BLOB のみを保持する新しいテーブルを追加し、最初のテーブルに (null 許容の) 外部キーを追加することでした。彼は、最初のテーブルをクエリするときに、これによりパフォーマンスが向上すると予測しています。
私の考えでは、BLOB を元のテーブルに直接格納する方がより論理的で簡単です。私たちのクエリはSELECT *
そのテーブルから行わないので、直観的には、テーブルを直接保存してもパフォーマンスのオーバーヘッドは大きくありません。
両方の選択肢をベンチマークするつもりですが、SQL の達人が経験からアドバイスをしてくれることを期待していました。
MSSQL と Oracle を使用します。