MySQL数据库创建表报 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字节,如果索引大小超过767字节则会引发该错误。

解决办法:

show variables like ‘innodb_large_prefix’;
set global innodb_large_prefix = ON;
show variables like ‘innodb_file_format’;
set global innodb_file_format = BARRACUDA;

innodb_large_prefix

  • ON :Innodb表的行记录格式(row format)是Dynamic或Compressed,单列索引长度上限扩展到3072个字节 (5.7默认)
  • OFF:Innodb表的单例索引长度最多为767个字节,索引长度超出后,主键索引会创建失败,辅助索引会被截断成为前缀索引(5.6默认的)

innodb_file_format

  • Antelope(compact、redundant): 先前未命名的,原始的InnoDB文件格式。它支持两种行格式:COMPACT 和 REDUNDANT。MySQL5.6的默认文件格式。可以与早期的版本保持最大的兼容性。不支持 Barracuda 文件格式。
  • Barracuda(compressed、dynamic): 新的文件格式。它支持InnoDB的所有行格式,包括新的行格式:COMPRESSED 和 DYNAMIC。与这两个新的行格式相关的功能包括:InnoDB表的压缩,长列数据的页外存储和索引建前缀最大长度为3072字节。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远不要矫情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值