We all know disk based temporary tables are bad and you should try to have implicit temporary tables created in memory where possible, do to it you should increase tmp_table_size to appropriate value and avoid using blob/text columns which force table creation on the disk because MEMORY storage engine does not support them Right ?
Wrong.
In fact setting tmp_table_size is not enough as MySQL also looks at max_heap_table_size variable and uses lower value as a limit to for in memory temporary table after which it will be converted to MyISAM.
To make things more confusing this is not what you would read in
MySQL manual as far as I understand it:
From
http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html
MEMORY table contents are stored in memory, which is a property that MEMORY tables share with internal tables that the server …
[Read more]