MySQL Forums
Forum List  »  MyISAM

Re: Table full message when data is just over 16MB
Posted by: Rick James
Date: December 30, 2010 01:22PM

Sounds like the product of average row length and maximum rows was under 16MB (2**24). Fix it by changing either or both of those via ALTER TABLE.

Behind the scenes:
MyISAM uses a pointer from indexes into the data. The pointer is either a row offset (if "Fixed"), or a byte offset (if "Dynamic"). See SHOW TABLE STATUS for which it is. The pointers are some number of bytes. Yours seem to be 3 bytes. The old default was 4; the current default is 6. (The default is used when average row length and maximum rows are not specified.)

The pointer size effectively limits the size of a MyISAM table. On the other hand, if the pointer is bigger than needed, the .MYI file is bigger than needed.

Bottom line: The default is fine for 99.9% of cases. If you set average row length or maximum rows, be sure make them at least as big as the table will ever be. Otherwise, you could be stuck with doing a lengthy ALTER.

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Table full message when data is just over 16MB
1707
December 30, 2010 01:22PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.