【影响MySQL 8.0单列索引长度的因素有哪些?】

影响MySQL 8.0单列索引长度的因素

MySQL 8.0支持的单列索引长度最大是3072bytes,影响单列索引长度的因素有哪些:

  • innodb_page_size: InnoDB页大小,默认是16KB。支持5种size:4k、8k、16k、32k、64k。
  • row_format: 表的行格式,默认是“dynamic”。支持6种格式:DEFAULT、DYNAMIC、FIXED、COMPRESSED、REDUNDANT、COMPACT。
  • character set: 如果使用“utf8mb4”,假如存储的是中文,那么一个字符占3bytes,那么该列支持的索引长度最大为(3072/3=1024)1024个字符。假如存储的是字母,那么一个字符占1bytes,那么该列支持的索引长度最大为3072bytes。

在row_format=DYNAMIC或COMPRESSED的情况下,innodb_page_size的size决定支持的单列索引最大长度不同。

  • innodb_page_size=64KB,row_format=DYNAMIC或COMPRESSED,支持的单列索引最大长度是3072bytes。
  • innodb_page_size=32KB,row_format=DYNAMIC或COMPRESSED,支持的单列索引最大长度是3072bytes。
  • innodb_page_size=16KB,row_format=DYNAMIC或COMPRESSED,支持的单列索引最大长度是3072bytes。
  • innodb_page_size=8KB,row_format=DYNAMIC或COMPRESSED,支持的单列索引最大长度是1536bytes。
  • innodb_page_size=4KB,row_format=DYNAMIC或COMPRESSED,支持的单列索引最大长度是768bytes。

在innodb_page_size=16KB的情况下,row_format的格式决定支持的单列索引最大长度不同。

  • row_format=DYNAMIC或COMPRESSED,支持的单列索引最大长度是3072bytes。
  • row_format=COMPACT或REDUNDANT,支持的单列索引最大长度是767bytes。

参考:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值