Cuando se aumenta la RAM de almacenamiento en las tablas temporales viene con ventajas y desventajas.
Ventajas:
- Se puede almacenar algunas queries todo en la RAM, sin tener que usar el disco de la computadora, lo que lo hace mucho mas rapido.
Desventajas:
- Un aumento de consumo de la RAM, cuando se incrementa la variable de tmp_table_size, se esta comiendo o apartando un espacio en la RAM para las tablas manejada por el , es decir, otros procesos pueden requerir de mas RAM, pero no van a poder usar esos tmp_table_size que apartaste. Por ejemplo la mía esta la por default, y si creo queries y las ejecuto esas tablas temporales se almacenaran en el archivo "ibtmp1".
-
- Como puedes ver, no tiene llena los 35 MB aún. El archivo lo puedes encontrar en la variable datadir que en mi caso lo cambie de direccion xd, puedes mirarla usando:
SHOW VARIABLES WHERE VARIABLE_NAME LIKE "DATA%"
- Y según este artículo, si tu tabla temporal dada por una query que creaste sobrepasa lo que esta en la variable tmp_table_size, entonces usara el disco para guardarla. Esto hara la consulta mas lenta.
Yo lo resumiria en este parrafo, muy explicado aqui:
If the temporary table is small it can be created into the memory, otherwise, it’s created on the disk. Needless to say that an in-memory temporary table is faster. MySQL creates an in-memory table, and if it becomes too large it is converted to an on-disk table. The maximum size for in-memory temporary tables is defined by the tmptablesize or maxheaptablesize value, whichever is smaller. The default size in MySQL 5.7 is 16MB. If you run queries on a large amount of data, or if you have not optimized queries, you can increase the variables. When setting the threshold, take into consideration the available RAM and the number of concurrent connections you have during your peaks. You cannot indefinitely increase the variables, as at some point you’ll need to let MySQL use on-disk temporary tables.
Aqui se habla mucho mas a detalle de las tabla temporales.
Espero te sirva. Saludos