zoukankan      html  css  js  c++  java
  • MySQL----ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

    1、问题描述

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

    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)单列索引长度限制

    2) 组合索引长度限制

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

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

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

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

  • 相关阅读:
    2017.12.13T19_B2_6.4内部类
    2017.12.13T19_B2_6.3内部类
    python--spider模拟登录
    Redis数据库
    python--spider验证码
    python--Selenium(动态渲染页面爬取)
    python--Ajax
    python绘图实例
    python绘图
    Numpy库收尾(20190806)
  • 原文地址:https://www.cnblogs.com/luxiaojun/p/7065561.html
Copyright © 2011-2022 走看看