innodb_large_prefix

 

环境:5.6.26

sql文件执行异常信息:
Specified key was too long; max key length is 767 bytes
意思:超出索引字节的限制,不是指字段长度限制。
如果启用了系统变量innodb_large_prefix(默认启用,注意实验版本为MySQL 5.6.41,默认是关闭的,MySQL 5.7默认开启),则对于使用DYNAMIC或COMPRESSED行格式的InnoDB表,索引键前缀限制为3072字节。如果禁用innodb_large_prefix,则对于任何行格式的表,索引键前缀限制为767字节。
innodb_large_prefix将在以后的版本中删除、弃用。在MySQL 5.5中引入了innodb_large_prefix,用来禁用大型前缀索引,以便与不支持大索引键前缀的早期版本的InnoDB兼容。
解决办法:
notion image
修改命令:
select version(); 查看当前mysql服务器版本号
show variables like ‘%innodb_large_prefix%’;查看索引键前缀状态
set global innodb_large_prefix=on; 设置开启
SET GLOBAL innodb_file_format = BARRACUDA; 查看当前的innodb_file_format引擎格式类型是不是BARRACUDA
ROW_FORMAT=DYNAMIC default charset utf8mb4; 创建表的时候指定表的 row format 格式为 Dynamic 或者 Compressed
Loading...
文章列表
王小扬博客
云原生
Git
Elasticsearch
Apollo
产品
Think
生活技巧
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP
AI