utf er virkelig utfmb3 og må maks. bruge 3 bytes pr. tegn, mens utfmb4 må bruge 4 bytes pr. tegn. For VARCHAR-kolonner betyder dette normalt ikke den store forskel, da MySQL kun gemmer så mange bytes som nødvendigt (medmindre du har oprettet dine MyISAM-tabeller med ROW_FORMAT=FIXED).
Under udførelse af forespørgsler kan MySQL dog oprette midlertidige tabeller i MEMORY-lagermotoren, som ikke understøtter rækker med variabel længde. Disse midlertidige tabeller har en maksimal størrelse, og hvis den størrelse overskrides, vil de midlertidige tabeller blive konverteret til tabeller i MyISAM/InnoDB (afhængigt af din version af MySQL). Statusvariablen Created_tmp_disk_tables
vil blive øget hver gang dette sker. Hvis ja, så prøv at se, om det hjælper at øge værdien af max_heap_table_size
og tmp_table_size
.
Alternativt kan du opgradere til MySQL 8.0, hvor en ny lagermotor, der understøtter rækker med variabel længde, bruges til interne midlertidige tabeller.