mysql 添加索引 Specified key was too long
- 数据库工具:DataGrip
- ENGINE:InnoDB
- CHARSET:utf8mb4
最开始是直接在视图界面操作,直接手动加了两个索引,结果保存时提示
Specified key was too long; max key length is 767 bytes
刚开始以为是命令行的原因,就写了一个SQL进行创建索引
ALTER TABLE `action_log` ADD INDEX index_log_front_id (`front_id`);
还是提示这个错误:指定的key太长,key的最大长度为767个字节
* CHARSET:utf8mb4,一个字符对应4个字节
* CHARSET:utf8,一个字符对应3个字节
所以,我这个key对应的字符应该最大设置为 767/4 = 191,而我最初设计表的时候,本着不考虑资源浪费,varchar类型给的都是255,255正好是utf8设置索引时的最大字符