On 4 Jun 2002, at 15:43, Jared Richardson wrote:

> | >    AVG_ROW_LENGTH=4096 MAX_ROWS=4294967295;
> |
> | Why do you use AVG_ROW_LENGTH=4096? It seems to me the max record |
> length is 528...? |
> 
> According to the MySql docs, the max table size is AVG_ROW_LENGTH *
> MAX_ROWS
> 
> We were trying to ensure the maximum amount of growth... this table
> can grow very very large....

That's fine, but if you make the max size bigger than what you really 
need, you bloat your index and slow things down for no benefit.  As I 
understand it, with the default max table size of 4 GB (for dynamic-
record MyISAM tables), the index will have 4-byte pointers to the 
records.  The next step would be 5-byte pointers, which would allow a 
max table size of 1024 GB (or 1 TB).  But you're asking for an even 
higher max table size, forcing MySL to use 6-byte pointers in the 
index, which allows a max table size of 256 TB.

I don't think there's any difference between setting AVG_ROW_LENGTH 
to 4096 and setting it to 528, since either will put you in the same 
size range when combined with MAX_ROWS=4294967295.

Think about how many rows you're actually going to have and what the 
real average row length is.  528 may be your maximum row length, but 
I think it's unlikely that your VARCHARs average anywhere near 255.  
Most likely the numbers are low enough that the 1 TB table size is 
sufficient, so your indexes will only need 5-byte pointers and thus 
be smaller.

[Filter fodder: SQL]

-- 
Keith C. Ivey <[EMAIL PROTECTED]>
Tobacco Documents Online
http://tobaccodocuments.org

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to