“Specified key was too long; max key xxx bytes”该怎么解决?

首先很明显地说明了设置的索引太长,太长就会导致性能问题,所以就提示咯。而对于varchar(200)以上字符的字段,没有必要做那么长的索引,可以阶段的(部分),修改为:

字段如下:

f_type int(11), f_key varchar(256), PRIMARY KEY(f_type,f_key(40))

备注:

这样修改之后可能有一些风险哦,因为作为主键必须唯一,可能出现问题的情况,毕竟只截断了40个字符....

对于InnoDB引擎的表,不建议你们使用此类组合模式做主键,性能会很差,建议数值类型的字段作主键,外加创建唯一索引的模式,例如:

id INT UNSIGNED AUTO_INCREMENT,f_type int(11), f_key varchar(256), PRIMARY KEY(ID),UNIQUE KEY(f_type,f_key(80))
相关推荐:
清除锁屏密码? 别怕,可以不用刷机的。 既能去掉密码又不弄丢数据,还能保持原的东西?当然有方法了,呵呵,废话不说了,下面教你了。 一、手机用数据线连接电脑,希望你的手机“USB调试”是开着的, 没开? …
在windows 下,最常使用的结束进程的方法就是打开任务管理器,找到相应的进程, 选择后点击 “结束进程” 按钮。有时候查看任务管理器,发现启动了一堆相同的进程,并且有时杀了这个,又多了那个。使用命令ta …
现代的浏览器均实现了输入框历史记录的功能,可以简化输入时的麻烦,但是,有时候弹出的下拉框会挡住页面显示内容,或是在某些情况下也不需要对输入框进行记录,如号码查询的输入框,用户不会对同一个号码 …
将Android开发项目从一台机子转移到另一台机子时,运行AS后报出: Error:CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息,然后联系软件发布者。 此问题发生 …
Activity,Service等组件有些是对外开放的(manifest.xml 中 export为true或定义的intent-filter的组件是可导出组件),当这些组件传递的参数未做校验时,这些参数可能导致APP 拒绝服务。 请严格校验输入参 …
拿起手机扫一扫即可带走我!