With MySQL 8’s change from MEMORY -> TempTable for internal temp tables, things are a bit confusing as far as what determines limits on internally generated temp tables - if I am reading things correctly… tmp_table_size ( https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmp_table_size ) does not apply to internal temporary tables when using the default TempTable format - is that right?
In other words, “tmp_table_size” should not be used to control the tmp table size (see how that is confusing) - it seems now temptable_max_ram ( https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_temptable_max_ram ) governs memory used by TempTables - in essence taking the place of the older max_heap_table_size + tmp_table_size config combo when using MySQL 8 defaults.
Anyone else here reading the docs the same? Assuming the above is the case… Does the temptable_max_ram value set an upper limit per TempTable table? Or is it a system-wide limit that applies to the sum of all in-use TempTables at any given time? The default for tmp_table_size (16777216 bytes) to temptable_max_ram (1 GB) is a big bump - so seems like that is a system wide limit?