From: | Jurgen Defurne <defurnj(at)glo(dot)be> |
---|---|
To: | postgreSQL general mailing list <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: max tuple size and filesystem block size |
Date: | 2000-05-18 17:24:24 |
Message-ID: | 39242748.753E873@glo.be |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Robert B. Easter wrote:
> I want to store the full text of papers, news items, notes, comments, etc that
> can be of any length. I don't want to use large objects to hold every single
> thing. I've also realized now that large objects are only truly needed if you
> have to store binary data.
>
> Large objects have all these problems:
> 1. Cumbersome to work with - functions are not supported everywhere.
> 2. Nonstandard.
> 3. Will not dump using pg_dump. A special program must be used.
> 4. Each lo creates a file (uses inode), which can limit the amount of
> data you can store eventually.
> 5. Slower?
>
> I'm thinking I can store large amounts of text using the VARCHAR type, which
> is standard. I could take a news item or paper etc, and break it down into
> chunks that go into 'pages' in a VARCHAR. With a limit of 8k on a tuple, I'd
> be limited to about VARCHAR(7168) for a page, which is ok but more would be
> better. I'd want to leave some bytes left over for other attributes. If I can
> use 16k or 32k tuples, then a lot of the time, a news article, etc would fit
> into just one page/tuple. Anyhow, I'm trying to decide on a text storage
> scheme that will be flexible and uses standard database features. Once decided
> I'll be locked into it. I wish I knew how other sites store large amounts of
> news and other text in databases.
This is a piece of the postgreSQL FAQ :
4.6) What is the maximum size for a row, table, database?
Rows are limited to 8K bytes, but this can be changed by editing include/config.h and
changing BLCKSZ. To use attributes larger than 8K,
you can also use the large object interface.
Rows do not cross 8k boundaries so a 5k row will require 8k of storage.
Table and database sizes are unlimited. There are many databases that are tens of
gigabytes, and probably some that are hundreds.
In include/config.h, this means editing the following line :
#define BLCKSZ 8192
to
#define BLCKSZ 32768
and then rebuilding postgreSQL.
About VARCHAR : the people from postgreSQL prefer the usage of the 'text' datatype. It
is a variable length
field on which you do not have to put an upper boundary.
Good luck,
Jurgen Defurne
defurnj(at)glo(dot)be
From | Date | Subject | |
---|---|---|---|
Next Message | Paul Condon | 2000-05-18 17:37:41 | Re: initdb and "exit_nicely" |
Previous Message | The Hermit Hacker | 2000-05-18 17:18:12 | Re: The New Slashdot Setup (includes MySql server) |