[b]how does mysql create temporary table?[/b]
if you running GROUP BY and some other kinds of queries MySQL needs to create temporary tables, which can be created in memory, using MEMORY storage engine or can be created on disk as MYISAM tables. Which one will be used depends on the allowed tmp_table_size and also by the data which needs to be put to temporary tables - BLOB/TEXT columns are not supported with MEMORY storage engine so must use on disk MyISAM temporary table.
if you want to reduce disk base table creation, you also need take care max_heap_table_size parameter.
normally max_heap_table_size <= tmp_table_size
[b]why you need to avoid disk base table?[/b]
here is a article [url]http://www.mysqlperformanceblog.com/2007/08/16/how-much-overhead-is-caused-by-on-disk-temporary-tables/[/url]
the point of that article is:
MEMORY temporary tables can be 10-100 times faster than disk based MyISAM tables
if you running GROUP BY and some other kinds of queries MySQL needs to create temporary tables, which can be created in memory, using MEMORY storage engine or can be created on disk as MYISAM tables. Which one will be used depends on the allowed tmp_table_size and also by the data which needs to be put to temporary tables - BLOB/TEXT columns are not supported with MEMORY storage engine so must use on disk MyISAM temporary table.
if you want to reduce disk base table creation, you also need take care max_heap_table_size parameter.
normally max_heap_table_size <= tmp_table_size
[b]why you need to avoid disk base table?[/b]
here is a article [url]http://www.mysqlperformanceblog.com/2007/08/16/how-much-overhead-is-caused-by-on-disk-temporary-tables/[/url]
the point of that article is:
MEMORY temporary tables can be 10-100 times faster than disk based MyISAM tables