打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Specified key was too long; max key length is 767 bytes

MySQL的InnoDB存储引擎的表存在一系列的限制条件,其中比较常见的一种是表的字段索引长度限制,该限制与参数innodb_large_prefix相关。

原因分析:

导致上面报错的原因是由于InnoDB表的索引长度限制,在MySQL5.6版本后引入了参数innodb_large_prefix可以解决这个问题。有ON和OFF两个取值:

  1. :Innodb表的行记录格式是Dynamic或Compressed的前提下,单列索引长度上限扩展到3072个字节。

  2. :Innodb表的单例索引长度最多为767个字节,索引长度超出后,主键索引会创建失败,辅助索引会被截断成为前缀索引。

解决方法:

设置MySQL的全局参数innodb_large_prefix=ON,将InnoDB表的索引长度上限扩大到3072个字节。

1. 查看MySQL数据库当前的配置;

show variables like 'innodb_large_prefix'; 
show variables like 'innodb_file_format';

2.修改配置

set global innodb_large_prefix=ON;//开启不限制索引长度 
set global innodb_file_format=BARRACUDA;//这个不知道

3、修改表

ALTER TABLE `TableName ` row_format=dynamic;
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MySQL 建索引时 Specified key was too long; max key length is 767 bytes 错误的处理
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
【竺】数据库笔记14——Mysql建表 创建索引
优化 MySQL: 3 个简单的小调整
覆盖索引(covering index)一次神奇的MySQL优化
linux高负载下mysql数据库彻底优化
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服