title: Performance overhead of adding a BLOB field to a table
body: <p>I am trying to decide between two possible implementations and am eager to choose the best one :)</p>
  
  <p>I need to add an optional BLOB field to a table which currently only has 3 simple fields. It is predicted that the new field will be used in fewer than 10%, maybe even less than 5% of cases so it will be null for most rows - in fact most of our customers will probably never have any BLOB data in there.</p>
  
  <p>A colleague's first inclination was to add a new table to hold just the BLOBs, with a (nullable) foreign key in the first table. He predicts this will have performance benefits when querying the first table.</p>
  
  <p>My thoughts were that it is more logical and easier to store the BLOB directly in the original table. None of our queries do <code>SELECT *</code> from that table so my intuition is that storing it directly won't have a significant performance overhead.</p>
  
  <p>I'm going to benchmark both choices but I was hoping some SQL gurus had any advice from experience.</p>
  
  <p>Using MSSQL and Oracle.</p>