Re: [PERFORM] PostgreSQL Disk Usage and Page Size

2004-03-17 Thread Stephen Robert Norris
On Thu, 2004-03-18 at 10:52, Seum-Lim Gan wrote:
 Hi all,
 
 we have a question about the pagesize in PostgreSQL:
 
 Using different pagesizes: 4K, 8K, 16K, 32K, when we store different 
 record sizes
 such as in the following example:
 
 CREATE TABLE TEST_1 (
 F1 VARCHAR(10),
 F2 VARCHAR(5) );
 
 CREATE TABLE TEST_2 (
 F1 VARCHAR(10),
 F2 VARCHAR(10) );
 
 we're consistently having the following storage behavior:
 
 60 records / 4k_page
 120 records / 8k_page
 240 records / 16k_page
 480 records / 32k_page.
 
 So it seems that it doesn't matter whether the record size is
 15 bytes or 20 bytes, there's maximum number of records per page
 as shown above.
 
 Any clues if there's any parameter or bug causing that?
 
 Gan (for Amgad)

Well, you're size counts are completely wrong, for starters.

Each varchar uses 4 bytes + length of the string, so that's 8 more bytes
per row. Then you may have an OID as well for another 4 bytes. I'd also
not be surprised if the length of the string is rounded up to the
nearest word (although I don't know if it is), and I'd be amazed if the
length of the record isn't rounded to some boundary too.

There's a handy page in the documentation that talks about how to know
how big rows are, I suggest you start there...

Stephen


signature.asc
Description: This is a digitally signed message part


Re: [PERFORM] Scaling further up

2004-03-15 Thread Stephen Robert Norris
On Tue, 2004-03-16 at 07:28, Matt Davies wrote:
 This is the preferred method, but you could create a memory disk if running
 linux. This has several caveats, though.
 
 1. You may have to recompile the kernel for support.
 2. You must store the database on a hard drive partition during reboots.
 3. Because of #2 this option is generally useful if you have static content that
 is loaded to the MD upon startup of the system. 

And 4. You use twice as much memory - one lot for the FS, the second for
buffer cache.

It's generally going to be slower than simply doing some typical queries
to preload the data into buffer cache, I think.

Stephen


signature.asc
Description: This is a digitally signed message part