Subject Re: [firebird-support] blob_id is stored as a part of a record data
Author Ann Harrison
On Tue, Apr 26, 2011 at 4:42 PM, lmatusz <matuszewski.lukasz@...> wrote:

I'm thinking about your size estimates, which I think are low, but right now
I can't prove it. From time to time I tease Jim about being a child of the bit
depression, but the change in available disk space boggles my mind. When
I was at DEC, the whole of commercial software, including three database
projects, couldn't get a gigabyte of disk from the company's own disk
manufacturing arm. Now I can get 8 gigs at Staples for $10 or so and lose
it in my pocket.


Anyway, here's my quibble with the last post.

> These pages of type blob_page contains compressed blob data

Blob data is not compressed. Firebird uses very simple run-length
compression to minimize CPU overhead. It does a good job on the
unused trailing bits of string data, null fields, and groups of binary
zeros. You'd be surprised how much of the scalar data in a most
tables it gets rid of, given how simple it is.

However, blobs aren't susceptible to the same compression -
regardless of type - BLOB or CLOB - they are stored at their
meaningful length with no easily compressed trailing spaces
or zeros. There are lots of modern algorithms that run on modern
CPU's that can compress most blobs - probably not jpegs, but
certainly character blobs - without slowing the system down,
but as far as I know, none is available from Firebird.

Good luck,

Ann