En MySQL, de forma predeterminada, las tablas temporales creadas con el motor de memoria pueden crecer rápidamente más allá del límite de 16 mb de max-heap-table-size y tmp-table-size porque se asigna más memoria por fila de lo que normalmente se requiere. Por ejemplo, si cada fila requiere 16kb, solo se necesitan 1k filas para alcanzar el límite. Para muchas aplicaciones, este problema se puede solucionar usando ROW_FORMAT=DYNAMIC como se explica aquí:
http://www.percona.com/doc/percona -servidor/5.5/flexibilidad/improved_memory_engine.html