Entry
What is a BLOB?
Mar 24th, 2009 17:32
chat alarab, Nathan Wallace, Onno Benschop, Kristian K�hntopp
A BLOB is a "Binary Large OBject" in a database. BLOBs are strange
things for most databases for several reasons. Most of these reasons are
related to the B in BLOBs: BLOBs can be very large, 2 GB or more,
depending on the database.
For example, BLOBs are typically larger than a single block of storage
in your database, rendering many performance assumptions invalid that
your database uses to make access to your data efficient. For example,
if you have BLOBs in your table, the size of these BLOBs may vary wildly
from a few bytes to hundreds of Kilobytes, making it very difficult for
your DB engine to balance storage requirements evenly. Deleting BLOBs
from a table will leave large holes in your database files, which will
eventually get filled with data from totally different storage
locations, leading to a wildly fragmented storage order on disk for your
data. Because BLOBs have potential to be very large and can vary so
wildly in size, BLObs can usually not be indexed. Search operations on
BLOBs are therefore slow compared to small types.
Also, BLOBs are usually so large that you do not want to retrieve them
in many cases. That is, the database has to have a special API with
which you can return a query result containing "BLOB handles" and then
whole or partical BLOBs using these handles. This requires of course
special BLOB code in your application, dealing with this special case.
Because BLOBs are untyped data, and because of their size, BLOBs often
hold compond data and the nature of that data is opaque to the database.
That is, you may decide to store for example word documents, tiff images
or other high level storage formats as BLOBs in your database. You
cannot formulate high level search criteria on this data, because of the
opaque nature of the storage. Your database cannot perform search
operations like "find me all word documents which contain form fields
named "city" where "city" is filled in as "kiel, germany". Also, you
cannot search for all tiff images where an edge detection operator
applied to the image finds horizontal lines. Some very advanced
databases try to address the latter problem by offering you an API to
write your own high level data types (sometimes called "cartridges"
or "data blades") so that you may implement such operations.
But in any case you can see that a BLOB is very different from a simple
"large char" on the storage level, on the index level, from an API
standpoint and from a high level abstract datatype view.
http://www.ksa-123.com
http://www.ksa-2000.com
http://www.chat-kuwait.com
http://www.vip-kuwait.com
http://www.chat-3rb.com
http://www.vip-3rb.com
http://www.3rb-chat.com
http://www.vipgulf.com
http://www.chat-gulf.com
http://www.vip-gulf.com