MySQL - Row size too large

Stel je hebt een tabel met heel veel VARCHAR(255) kolommen, dan ontstaat deze foutmelding bij een INSERT query:

Als de VARCHAR kolom een UTF-8 encoding gebruikt dan worden er 3 bytes per karakter gebruikt voor opslag.

255 x 3 = 765 bytes

Een rij mag niet meer dan 65.535 bytes bevatten.

65.535 / 765 = 85 kolommen

Er kunnen dus maximaal 85 kolommen met VARCHAR 255 met UTF-8 encoding worden aangemaakt.

De oplossing wordt in de foutmelding al gegeven.

Door de VARCHAR(255) kolommen te wijzigen naar het type TEXT wordt de informatie niet in de rij opgeslagen, enkel de referentie naar de inhoud van de kolom.