MySQL(InnoDB) で "Index column size too large. The maximum column size is ... bytes."

MySQL(InnoDB)では、ひとつのカラムのキープレフィックスの最大値制限がある

  • デフォルトのstring型のカラム
  • utf8mb4

を定義すると、
MySQLだとstring は varchar(255)になって
デフォルトでは最大制限値超えます

そうするとindex貼れなくて焦ります.

MySQL 5.5.14以降だとinnodb_large_prefixというオプションが追加されてて
キープレフィックスの制限を3072バイトまで拡張できます。