Index column size too large. The maximum column size is 767 bytes.

创建索引的时候报错 :Index column size too large. The maximum column size is 767 bytes.

错误原因:

由于MySQL的Innodb引擎表索引字段长度的限制为767字节,
因此对于多字节字符集的大字段或者多字段组合,
创建索引时会出现此错误。
以utf8mb4字符集字符串类型字段为例,
utf8mb4是4字节字符集,
则默认支持的索引字段最大长度是191字符(767字节/4字节每字符≈191字符),
因此在varchar(255)或char(255)类型字段上创建索引会失败。

解决方案:

如下几个参数需要重点关注

default_storage_engine = InnoDB
innodb_large_prefix=on
innodb_file_format = BARRACUDA

重启 MySQL:lnmp restart
由于是修改配置前创建的表,
所以还要调整下表的结构:

alter table `表名` row_format=dynamic;
alter table `表名` row_format=compressed;

再重新执行创建索引SQL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值