修改Mysql索引长度限制解决767 byte限制问题
                    
                 
                
报错specified key was too long; max key length is 767 bytes原因msyql5.6及以前版本, 默认索引最大长度767bytes若使用utf8mb4                
                
                
                
                
                
                    
                            
报错
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版本或以上
二、修改相关配置,增加操作以解决
解决方案如下:
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中怎么匹配年月 
                                                    
一般数据库中给到的时间都是年-月-日形式的,那怎么匹配年-月/的形式?如2021年8月怎么写(怎么在数据库中查询到关于2021年8月的数据):法一:使用mont...
                                                    
                                                    
                                                        [阅读全文]
                                                    
                                                 
 
 
 
- 
                                    
                                            
                                                  
                                            
                                                MySQL中约束的实现示例 
                                                    
前言数据库中的约束是确保数据完整性和准确性的重要手段。通过对数据表字段的约束设置,可以限制数据的取值范围、确保数据的唯一性以及建立表与表之间的关联关系。本文将深...
                                                    
                                                    
                                                        [阅读全文]
                                                    
                                                 
 
 
 
- 
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                        
                                            
问题本人在使用不同版本下进行操作时,就会出现中文乱码的问题。例如我本地安装mysql8,服务器安装的是mysql5,然后本地连接服务器的mysql后,执行sql脚本之后发现中文全部…
                                             
 
 
- 
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                        
                                            
注:本文在测试环境升级测试,建议先在测试环境验证。在生产环境下还是先评估下,mysql-5.7.42为二进制方式安装,所以用mysql-8.2.0二进制包升级1、操作环境1、查看当…
                                             
 
 
- 
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                        
                                            
1.mycat的管理工具mycat默认开通2个端口,可以在server.xml中进行修改。8066 数据访问端口,即进行 dml 和 ddl 操作。9066 数据库管理端口,即 m…
                                             
 
 
- 
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                        
                                            
注:本文在测试环境升级测试,建议先在测试环境验证。mysql-5.7.42为rpm安装,所以用rpm方式升级1、升级准备1、数据备份:在升级之前,务必对当前的 mysql 5.7 …
                                             
 
 
 
                
                
                
                
                
                    
                        版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
                        如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
                    
                 
                
             
        
发表评论