Subject | Re: [firebird-support] why Blob is so slow ? |
---|---|
Author | Alexandre Benson Smith |
Post date | 2012-04-19T17:11:39Z |
Em 19/4/2012 13:34, Tupy... nambá escreveu:
main table holds only data and there is no chance that "small" blobs are
stored with the record data.
Lets suppose I had 1k record, in a 16k page will contain rougly 15
records per page, if the blob are 10k for example, the data page will
hold only one record and the blob.
So to store 100 records (with the blob data) I will need 100 pages, but
the blob data are not often needed, so if I keep then on separate tables
I can make FB store 15 records per page, to read 100 records I will need
7 pages, wich is far less than 100.
And *when* I need the BLOB I will get it from another table (and another
page)
see you !
> Still something = doesn´t matter if you have the blob field in a separated table. Since they are all together in a same DB file, they may cause defragmentation, no one can ensure where at the DB file they will be written and probably will be written in the middle of others non-blob columns/fields.Having the BLOB on a separated table ensures that the data pages of the
> If you have an separated DB for the blob-fields-tables, you will not have this problem, but then you will have new ACIDity problems. If Firebird had something like MSSQL Server Linked Servers, than you still could have integration between the two DB´s, having the best of both (no fragmentation at one / blob´s at the other).
>
main table holds only data and there is no chance that "small" blobs are
stored with the record data.
Lets suppose I had 1k record, in a 16k page will contain rougly 15
records per page, if the blob are 10k for example, the data page will
hold only one record and the blob.
So to store 100 records (with the blob data) I will need 100 pages, but
the blob data are not often needed, so if I keep then on separate tables
I can make FB store 15 records per page, to read 100 records I will need
7 pages, wich is far less than 100.
And *when* I need the BLOB I will get it from another table (and another
page)
see you !