“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))
相关推荐:
AppCleaner是一个小应用程序,它允许您彻底卸载不需要的应用程序。 安装应用程序会在整个系统中使用不必要的硬盘空间分发许多文件。AppCleaner找到所有这些小文件并安全地删除它们。 只需将应用程序放到App …
1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效。 2. 数据库表段字段常量和SQL逻辑分离,更清晰,建议使用Lite系列 …
漏洞描述: 2019年6月14日上午,监测到互联网正在传播Coremail通杀漏洞POC,通过POC可获取Coremail配置文件信息,包括配置IP、端口、文件路径、数据库密码、用户名等信息。 漏洞定级: 高 漏洞影响范围: …
当往数据库中插入语句时,连接池抛出了“com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'xxx' at row xxx”的异常。 从提示的信息表面上来看,说是什么数据对于列“xxx”过 …
1.添加用户 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 例子: CREATE USER 'test'@'localhost' IDENTIFIED BY '123456'; CREATE USER 'test'@'localhost' IDENTIFIED BY ''; username …
拿起手机扫一扫即可带走我!