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

摘要:
1.问题描述导入同事提供的SQL文件时,出现1071错误。让我们总结和学习一下:2.问题分析错误的字面意思是MySQL字段中设置的值太长,不能大于767字节。在互联网上找到一些信息后,我们知道了原理:当我们为表创建索引时,数据库将计算出键长度是索引中使用的所有字段的字符长度,然后乘以以下比例。密钥长度不能超过限制(myisam和innodb存储引擎下的长度限制分别为1000字节
1、问题描述

在导入同事提供的一个sql文件时候,出现了一个1071错误,总结学习一下:

MySQL----ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes第1张

2、分析问题

错误的字面意思是说mysql字段设置的值太长了,不能大于767个字节,在网上找了一些资料后才知道原理:

当我们给表建立索引时,数据库会计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度(myisam和innodb存储引擎下长度限制分别为1000 bytes和767 bytes)

latin1 = 1 byte = 1 character 
uft8 = 3 byte = 1 character 
gbk = 2 byte = 1 character 
3.解决问题

1)单列索引长度限制

MySQL----ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes第2张

2) 组合索引长度限制

对于innodb存储引擎,多列索引的长度限制如下:

每个列的长度不能大于767 bytes;所有组成索引列的长度和不能大于3072 bytes

对于myisam存储引擎,多列索引长度限制如下:

每个列的长度不能大于1000 bytes,所有组成索引列的长度和不能大于1000 bytes

免责声明:文章转载自《MySQL----ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇nginx1.14.0下载、安装、启动洛谷 P7520下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ELK批量删除索引

一、存在问题 用了一段时间elk发现如果索引长时间不删除,elk会越来越慢,重启elasticsearch服务器节点之前同步时间也会很长 二、解决方法(定期删除索引) 1.在elasticsearch节点上使用curl -XGET 'http://192.168.X.XX:9200/_cat/shards'查看索引 [root@192-168-x-x sc...

kibana数据操作

1.创建索引 # 语法: PUT /<index> # 示例: PUT /laowang PUT xiaowang 2.创建数据 # 语法 PUT /<index>/_doc/<_id> POST /<index>/_doc/ PUT /<index>/_create/<_id>...

Mysql索引查询失效的情况

一:不在索引上使用函数,计算等   见图一,在kq_time上增加了一个索引  我们使用date()函数进行查询,见图二  图二根据kq_time字段查询并没有使用索引,我们可以根据kq_time换一种写法,他就可以走索引了,见图三  查询条件是一样的,图三的写法就走索引了. 二:尽量少使用!=,<>,这样可能是导致全表扫描 我在pers...

Lucene之索引库的维护:添加,删除,修改

索引添加 Field域属性分类 添加文档的时候,我们文档当中包含多个域,那么域的类型是我们自定义的,上个案例使用的TextField域,那么这个域他会自动分词,然后存储 我们要根据数据类型和数据的用途合理的选择合适的域 Field类: StringField(fieldName,fieldValue,Stroe.YES/NO) 存储的数据类型为字符串,包含...

php面试题2018

一 、PHP基础部分 1、PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows、Linux等)上配置,不受操作系统的限制,所以叫跨平台 2、WEB开发中数据提交方式有几种?有什么区别?百度使用哪种方式? Get与post两种方式区别:(1)url可见性:g...

大数据技术-spark+hive+hbase研究

大数据 spark 研究(0基础入门)一 背景 1 基础 Scala 语言基础:Scala详细总结(精辟版++) spark 介绍    :  spark介绍     二 环境 1 部署spark   <![if !supportLists]>1、<![endif]>环境准备(1)配套软件版本要求: Java 6+  Python...