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

本文介绍了解决MySQL Innodb引擎在5.6及以上版本中出现的“Index column size too large”错误的方法,包括调整配置文件及使用合适的字符集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


5.6及以上高版本MySQL innodb引擎创建表或者添加索引的时候 报Index column size too large. The maximum column size is 767 bytes

低版本可能是正常的 


原因主要是高版本的数据库 为了性能 很多东西做了限制 不合理的字段长度 不合理的查询方式 都会干掉

如果改配置的话 配置改了之后 字符集等也需要设置

而且对innodb性能 应该有所损耗 

可以把作为索引的那个column 改小一点 就可以了



确实需要大字段索引可以参考:https://help.aliyun.com/knowledge_detail/41707.html


ElasicSearch关联的mysql表,插入数据时会有以下提示

ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes


原因分析:

MySQL的varchar主键只支持不超过767个字节,需要将mysql的字符编码设置为utf8mb4

输入以下命令打开编辑界面

[plain]  view plain  copy
  1. sudo vi /etc/mysql/my.cnf    

在[mysqld]下加入以下配置:

[plain]  view plain  copy
  1. innodb_file_format=barracuda    
  2. innodb_file_per_table=true    
  3. innodb_large_prefix=true    
  4. character-set-server=utf8mb4    
  5. collation-server=utf8mb4_unicode_ci    
  6. max_allowed_packet=500M    
保存完重启后就能插入了。

详细可见Nutch之MySQL数据库的配置



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值