MySQL 建索引时 Specified key 'idx_t' was too long; max key length is 767 bytes 错误处理

在做 sql 优化时,对之前的表添加个索引,却给出了 Specified key 'idx_t' was too long; max key length is 767 bytes 提示,后来通过查询资料,发现

由于 MySQL Innodb 引擎表索引字段长度的限制为 767 字节,因此对于多字节字符集的大字段(或者多字段组合索引),创建索引会出现上面的错误。

以 utf8mb4 字符集 字符串类型字段为例:utf8mb4 是 4 字节字符集,则默认支持的索引字段最大长度是: 767 字节 / 4 字节每字符 = 191 字符,因此在 varchar(255) 或 char(255) 类型字段上创建索引会失败。

于是,改了下字段的长度,然后再把优化后的 sql 和之前的 sql 进行对照,果真快了不少。

猜你喜欢

转载自blog.csdn.net/molaifeng/article/details/81164893
今日推荐