innodb主键的长度为什么不能大于767字节

文章目录

    • 一、前言
    • 二、长度限制767的来源
    • 三、升级mysql5.7之后的长度限制为3072字节
    • 四、查看当前行格式,修改行格式等

一、前言

      这篇文章是基于之前的一篇:导入sql文件报错:1071 Specified key was too long; max key length is 767 bytes ,当时只是知道主键长度不能超过767字节,但是并不知道为什么会这么规定,这个767有什么特殊的含义吗?这篇文章会尽量去解读一下这个767是什么,为什么是它。

二、长度限制767的来源

1、compact行格式溢出

      主键是聚集索引,也是其他二级索引的基础,所以每个主键要在一个数据页存储,不能分布在其他的溢出页,不能像其他大字段一样溢出数据页。

      就是说博主认为,这个主键部分,包括单列索引的部分,它们都是一个整体的,不会像是其他数据文件一样溢出。而对于mysql5.7之前,默认使用的行格式是compact模式。对于这个模式大家可以百

你可能感兴趣的:(mysql,mysql进阶篇)