We observe a large number of messages of the kind
The table '../tmp/#sql…' is full
In older Versions of MySQL, implied temporary tables are being
created whenever your EXPLAIN
contained the phrase
using temporary
.
In this case, MySQL would create an in-memory temporary table to materialize an intermediate query result, and then continue to process the data from there. If that temporary table was larger than some configurable limit, the temporary table would instead be converted to a MyISAM table on disk, streamed out, and then work would continue with this.
This has a large number of disadvantages:
- A table in the
MEMORY
storage engine can have no variable length columns. That means, anyVARCHAR
column gets converted to …