[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The table is full
Error There are a couple of different cases when you can get this error:
tmp_table_size
bytes.
To avoid this problem, you can use the -O tmp_table_size=#
option
to make mysqld
increase the temporary table size or use the SQL
option SQL_BIG_TABLES
before you issue the problematic query.
See section SET
.
You can also start mysqld
with the --big-tables
option.
This is exactly the same as using SQL_BIG_TABLES
for all queries.
In MySQL Version 3.23, if an in-memory temporary table becomes larger than
tmp_table_size
, the server automatically converted it to a disk-based
MyISAM
table.
InnoDB
tables and run out of room in the
InnoDB
tablespace. In this case the solution is to extend the
InnoDB
tablespace.
ISAM
or MyISAM
tables on an OS that only
supports files of 2G in size and you have hit this limit for the datafile
or index file.
MyISAM
tables and the needed data or index size is
bigger than what MySQL has allocated pointers for. (If you don't specify
MAX_ROWS
to CREATE TABLE
MySQL will only allocate pointers
to hold 4G of data).
You can check the maximum data/index sizes by doing
SHOW TABLE STATUS FROM database LIKE 'table_name'; |
myisamchk -dv database/table_name
.
If this is the problem, you can fix it by doing something like:
ALTER TABLE table_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn; |
AVG_ROW_LENGTH
for tables with
BLOB/TEXT
fields as in this case MySQL can't optimize the space required based
only on the number of rows.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |