If I understand the manual correctly, it uses /tmp for creating temporary
tables if their size exceed the smaller of tmp_table_size or
max_heap_table_size, otherwise, it will create the temporary table in
memory. So if tmp_table_size is set to say 10Mb, and MySQL needs to create a
temporary table internally (which it does need for sorting and other stuff)
which would be about 20Mb, it's going to create it in /tmp. If that
temporary table had been 5Mb, it would have created it in memory.
I'm not sure how to calculate the needed space for /tmp. Check this for how
to change the tmp directory location:
On Thu, Jun 11, 2009 at 8:51 AM, Mike Spreitzer <mspreitz@stripped> wrote:
> I find my MySQL Community Edition 5.1.34 server running out of space on
> /tmp (which is indeed small). Why is it using /tmp? How much free space
> do I need on /tmp? Can/should I make the server use a different location
> instead of /tmp?
> Mike Spreitzer