Re: max tuple size and filesystem block size
От | Jurgen Defurne |
---|---|
Тема | Re: max tuple size and filesystem block size |
Дата | |
Msg-id | 39242748.753E873@glo.be обсуждение исходный текст |
Ответ на | max tuple size and filesystem block size ("Robert B. Easter" <reaster@comptechnews.com>) |
Список | 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@glo.be
В списке pgsql-general по дате отправления: