Straightly from
http://dev.mysql.com/doc/refman/5.0/en/full-table.html∞
You are using a
MyISAM table and the space required for the table exceeds what is allowed by the internal pointer size.
MyISAM creates tables to allow up to 4GB by default (256TB as of
MySQL 5.0.6), but this limit can be changed up to the maximum allowable size of 65,536TB (2567 – 1 bytes).
If you need a
MyISAM table that is larger than the default limit and your operating system supports large files, the CREATE TABLE statement supports AVG_ROW_LENGTH and MAX_ROWS options. See Section 11.1.5, “CREATE TABLE Syntax”. The server uses these options to determine how large a table to allow.
If the pointer size is too small for an existing table, you can change the options with ALTER TABLE to increase a table's maximum allowable size. See Section 11.1.2, “ALTER TABLE Syntax”.
ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;
You have to specify AVG_ROW_LENGTH only for tables with BLOB or TEXT columns; in this case,
MySQL can't optimize the space required based only on the number of rows.
To change the default size limit for
MyISAM tables, set the myisam_data_pointer_size, which sets the number of bytes used for internal row pointers. The value is used to set the pointer size for new tables if you do not specify the MAX_ROWS option. The value of myisam_data_pointer_size can be from 2 to 7. A value of 4 allows tables up to 4GB; a value of 6 allows tables up to 256TB.
There are no comments on this page. [Add comment]