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

- Link: https://www.xuepaijie.com/html/skill/devops/582.html
- Published: 2016-03-10T18:10:17+08:00
- Author: Admin

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

字段如下：

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

**备注：**

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

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

    ```html;
    id INT UNSIGNED AUTO_INCREMENT,f_type int(11), f_key varchar(256), PRIMARY KEY(ID),UNIQUE KEY(f_type,f_key(80))
    ```
