互联网服务MySQL

mysql row_id为什么是6字节?为什么是8字节?

mysql row_id为什么是6字节?为什么是8字节

mysql row_id为什么是6字节?为什么是8字节

参与9

2同行回答

AcdanteAcdante技术总监SHFY
1、MyISAM存储引擎:8字节, 行数容量更大。 2、InnoDB存储引擎 :6字节, 高4字节表示页码(Page Number),低2字节表示槽位(Slot)或行序号。具体可以参考MySQL官方文档。https://dev.mysql.com/doc/refman/5.7/en/innodb-multi-versioning.html至于Base64编码,主要是用于数据存储和传输...显示全部

1、MyISAM存储引擎:8字节, 行数容量更大。
2、InnoDB存储引擎 :6字节, 高4字节表示页码(Page Number),低2字节表示槽位(Slot)或行序号。

具体可以参考MySQL官方文档。
https://dev.mysql.com/doc/refman/5.7/en/innodb-multi-versioning.html

至于Base64编码,主要是用于数据存储和传输, 将二进制数据转换成由64个字符组成的ASCII字符串。将二进制数据转换成文本格式,以便于传输和处理。比如加密,binlog等。

收起
互联网服务 · 2023-07-06
浏览350
zftangzftang其它小白一枚
Base64编码要求把3个8位字节(3 8=24)转化为4个6位的字节(4 6=24),之后在6位的前面补两个0,形成8位一个字节的形式。显示全部

Base64编码要求把3个8位字节(3 8=24)转化为4个6位的字节(4 6=24),之后在6位的前面补两个0,形成8位一个字节的形式。

收起
互联网服务 · 2023-07-04
  • 这块有点不懂。mysql底层哪里存的是6。哪里存的是8呢。 还有为什么要用base64编码。 求大佬解惑
    2023-07-04

ChatGPT 回答

MySQL中的row_id是指每一行数据在表中的唯一标识符,它的长度取决于存储引擎的不同。

对于使用InnoDB存储引擎的表,row_id通常是6字节的长度,因为InnoDB使用了一个称为聚簇索引的技术来组织数据。在聚簇索引中,行数据存储在索引中,因此row_id只需要足够长来唯一标识表中的每一行数据即可。

而对于使用MyISAM存储引擎的表,row_id通常是8字节的长度,因为MyISAM使用了一个称为非聚簇索引的技术来组织数据。在非聚簇索引中,行数据和索引分别存储,因此row_id需要更长的长度来唯一标识表中的每一行数据。

需要注意的是,MySQL 5.7.9版本之后,InnoDB存储引擎的row_id长度可以通过配置文件进行调整,最大可以达到8字节。

提问者

Alex_HaOvo
java后端开发同程旅行
擅长领域: 服务器Linux一体化运维

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-07-03
  • 关注会员:3 人
  • 问题浏览:1252
  • 最近回答:2023-07-06
  • X社区推广