Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Mark Leighton Fisher (4252)

Mark Leighton Fisher
  (email not shown publicly)
http://mark-fisher.home.mindspring.com/

I am a Systems Engineer at Regenstrief Institute [regenstrief.org]. I also own Fisher's Creek Consulting [comcast.net].
Friday December 29, 2006
12:57 PM

BLOB Normal Form: BLOB and Primary Key in Their Own Table

[ #32018 ]

One technique to avoid the BLOB Tax (poor DB performance when BLOBs are present) is to separate BLOBs into their own table, with only their primary keys to keep them company. Databases that allow per-table storage areas should particularly benefit from this technique, as it isolates the BLOB tables from the rest of the database.

Offhand, I think this technique should be dubbed BLOB Normal Form, as this technique is similar to the relational database Xth Normal Form schema design techniques.

(I think I first saw this tip in the SQL Server Central newsletter.)

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • The normal forms are all about _logical_ issues. What you're describing is purely an implementation detail of how some databases handle BLOBs, and the workaround you suggest has nothing to do with the logic of your data model.

    In a better world, the DBMS engine would do this sort of thing transparently, or at least provide ways for DBAs to manually split the physical storage of tables across multiple locations.
    • In a better world, the DBMS engine would do this sort of thing transparently

      Thumbs up.

    • True enough. Still, this is a Good Practice. We do this in Slash too: the actual text of stories, comments, journals, etc. are all in their own table, with only the primary key.