MySQL refuses UPDATE with (1071, 'Specified key was too long; max key length is 1024 bytes') sometimes
(nimrodm's answer is better, but here are some workarounds)


VARCHAR(255) -- check the data; you probably do not need 255 in most fields.
COLLATE utf8_unicode_ci may be unnecessary for some of your columns.  Consider CHARACTER SET ascii.  utf8 takes 3 bytes toward the limit nimrodm mentioned; ascii takes only 1.
Consider normalizing those long strings.  MEDIUMINT UNSIGNED, for example, is only 3 bytes (1..16M range) -- a lot less that 3*255.