On Thu, 22 Jul 2004, Will Leshner wrote:

>Ok. I think I know what is going on. Each of the rows in my database
>is "too big" to fit on the main page (about 320 bytes for each row).
>So each one is forcing an overlow page. I'm assuming that each
>overflow page only stores one row of data. In other words, the
>overflow pages don't share rows as the main pages do. So since my rows
>are just a little too big to fit on the main page, most of each
>overflow page is unused. And since just about every one of my 80,000
>rows is creating a 1k overflow page that is largely unused, I'm ending
>up with a very large database file that is made up mostly of unused
>space.
>
>Does that sound about right?

That'll be right.

You might want to try SQLite 3, as 3.0.3 has variable page size enabled,
allowing you to use bigger pages which can store larger rows without
overflowing[0]. To do the same with SQLite 2 would require a recompile and
incompatible file with default SQLite 2 files.

Christian

[0] Each btree page can hold at least 4 cells. Increase page size, and
    cell size goes up.

-- 
    /"\
    \ /    ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
     X                           - AGAINST MS ATTACHMENTS
    / \

Reply via email to