MySQL InnoDB 底层数据存储

这篇具有很好参考价值的文章主要介绍了MySQL InnoDB 底层数据存储。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

是内存与磁盘交互的基本单位,16kb。
比如,查询的时候,并不是只从磁盘读取某条记录,而是记录所在的页
MySQL InnoDB 底层数据存储,java学习,mysql,数据库

记录

MySQL InnoDB 底层数据存储,java学习,mysql,数据库
记录的物理插入是随机的,就是在磁盘上的位置是无序的。但是在页中维护了逻辑顺序,是按照主键从小到大形成的一个单向链表。
infimum与supermum就相当于链表中的头节点和尾节点
MySQL InnoDB 底层数据存储,java学习,mysql,数据库

Page Directory

当页中记录太多,就会将页进行分组,增加(slot,有序数组),指向对应组里最大主键的记录。
比如下面的分组步骤2,根据主键在槽数组中二分查找,找到对应槽之后,但还有要向上一个槽(因为是单向链表,所以无法向上),再往下遍历next record。
MySQL InnoDB 底层数据存储,java学习,mysql,数据库
MySQL InnoDB 底层数据存储,java学习,mysql,数据库

记录迁移

MySQL InnoDB 底层数据存储,java学习,mysql,数据库
数据主键和业务主键:主要就是两点,
1、安全性:为了减少上述这种数据迁移,且大数据的情况下,一般选用主键自增,所以数据主键很容易就猜到,然后拿去一个一个试,就暴露了其他数据
2、业务性:数据主键是数据库生成,实际没有任何业务意义,对于用户来说不适用。比如order表的id与order_num文章来源地址https://www.toymoban.com/news/detail-819164.html

到了这里,关于MySQL InnoDB 底层数据存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql第二篇---InnoDB数据存储结构

    索引结构给我们提供了高效的索引方式, 不过索引信息以及数据记录都是保存在文件上的(innodb的ibd文件, MyISAM的MyI和MyD文件), 确切的说是存储在页结构中. 另一方面, 索引是在 存储引擎 中实现的, MySQL服务器上的存储引擎负责对表中数据的读取和写入工作. 不同存储引擎中存放

    2024年02月07日
    浏览(63)
  • java面经 MySQL 存储引擎--MyISAM和InnoDB的区别

    隔离级别 英文名称 含义 脏读 不 可 重 复读 幻读 未提交读 READ UNCOMMITTED 可读取其它事务未提交的结果 √ √ √ 提交读 READ COMMITTED 一个事务开始时,只能读到其他事务已经提交的修改。 例:如果A事务已经修改了XX,但还没提交,则B事务读XX时还是未修改的值。 ( Oracle等多

    2024年02月08日
    浏览(43)
  • 【MySQL索引与优化篇】InnoDB数据存储结构

    索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切说是存储在页结构中。另一方面,索引是在存储引擎中实现的,MySQL服务器上的 存储引擎 负责对表中数据的读取和写入工作。不同存储引擎中 存放的格式 一般是不同的。 由于 I

    2024年02月07日
    浏览(51)
  • innodb底层原理和MySQL日志机制

    客户端连接数据库需要输入账号、密码。连接器进行校验账号密码以及权限。 连接器连接以后,比如输入一个select语句,这时候第一步就会先根据sql语句作为key给查询缓存中查看这条sql有没有已经被查询过,如果有直接返回,如果没有就接着到分析器。查询缓存是以key-valu

    2024年01月24日
    浏览(48)
  • Innodb底层原理与Mysql日志机制深入剖析

    大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器

    2024年02月21日
    浏览(39)
  • 一文带你了解MySQL数据库InnoDB_Buffer_Pool

    前言 通过前边的学习我们知道,对于使用 InnoDB 作为存储引擎的表来说,不管是用于存储用户数据的索引(包括聚簇索引和二级索引),还是各种系统数据,都是以页的形式存放在表空间中的,而所谓的表空间只不过是 InnoDB 对文件系统上一个或几个实际文件的抽象,也就是

    2024年02月01日
    浏览(49)
  • (解析+源码)基于JAVA Swing+MySQL实现学生信息管理系统(增、删、改、查)数据库/文件存储

    本文适合 有一定JAVA编程基础(听过一点课的同学) 的同学“食用”,源代码都在文末 源代码(点击跳转) ,第四部分是各个模块的实现,新建一个工程把下面代码添加进去,然后在数据库里按id-username-password和id-name-sex-telephone-number-birthday-note创建两个表,在Connect.java里面将us

    2024年02月04日
    浏览(49)
  • MySQL—MySQL的存储引擎之InnoDB

    存储引擎 说明 MyISAM 高速引擎,拥有较高的插入,查询速度,但不支持事务 InnoDB 5.5版本后MySQL的默认数据库存储引擎,支持事务和行级锁,比MyISAM处理速度稍慢 ISAM MyISAM的前身,MySQL5.0以后不再默认安装 MRG_MyISAM 将多个表联合成一个表使用,在超大规模数据存储时很有用 Me

    2024年04月26日
    浏览(40)
  • MySQL架构 & InnoDB存储引擎

    我们在开发的时候,我们都需要对业务数据进行存储,这个时候,你们就会用到MySQL 、O racal 等数据库。 MySQL它是一个关系型数据库, 这种关系型数据库就有Oracal 、 MySQL,以及最近很火的PgSQL 等。 那什么是关系型数据库呢? 就是它是 基于我们的SQL语句去执行操作的 。 其实

    2024年02月07日
    浏览(50)
  • 谈谈MySQL的InnoDB存储引擎

    大家好,我是易安! 今天我们谈一谈MySQL中InnoDB存储引擎。InnoDB存储引擎作为我们最常用到的存储引擎之一,充分熟悉它的的实现和运行原理,有助于我们更好地创建和维护数据库表。 InnoDB主要包括了内存池、后台线程以及存储文件。内存池又是由多个内存块组成的,主要包

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包