修改Mysql索引长度限制解决767 byte限制问题
更新时间:2024年03月29日 09:38:39 作者:贝小贝貝
这篇文章主要介绍了修改Mysql索引长度限制解决767 byte限制问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
报错
Specified key was too long; max key length is 767 bytes
原因
msyql5.6及以前版本, 默认索引最大长度767bytes
若使用utf8mb4格式编码(utf8字符占用3字节,utf8mb4字符占用4字节)
则单个字段长度不能超过191
5.7及之后版本, 限制放开到3072 bytes
解决方案
一、将数据库版本升级到5.7版本或以上
二、修改相关配置,增加操作以解决
解决方案如下:
- 1、在my.ini中修改配置:
innodb_large_prefix = ON innodb_file_format = Barracuda innodb_file_per_table = ON
- 2、在create中添加row_format=dynamic
create table sql_test( id int , name VARCHAR(200), server_id VARCHAR(30), id_num1 VARCHAR(30), id_num2 VARCHAR(30), link VARCHAR(500), PRIMARY KEY (id), KEY sql_test_name (name)) engine=innodb row_format=dynamic;
这样做的缺点
会造成查询性能下降
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
MySQL错误1005(errno: 150)的原因分析与解决方案
本文详细介绍了MySQL外键约束创建失败错误1005的原因分析及解决方案,主要包括数据类型不匹配、被引用列不是主键或唯一键、存储引擎不支持外键、数据不一致问题和表不存在或列名错误等五个方面,需要的朋友可以参考下2025-12-12
MySQL删除数据Delete与Truncate语句使用比较
在MySQL数据库中,DELETE语句和TRUNCATE TABLE语句都可以用来删除数据,但是这两种语句还是有着其区别的,下文就为您介绍这二者的差别所在2012-09-09
mysql-8.0.15-winx64 解压版安装教程及退出的三种方式
本文通过图文并茂的形式给大家介绍了mysql-8.0.15-winx64 解压版安装,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-04-04


最新评论