《MySql技术内幕 InnoDb存储引擎》学习笔记【五 表】

本文深入探讨了InnoDB存储引擎的内部结构,包括其独特的索引组织表特性,以及表空间、段、区、页和行的逻辑存储结构。特别关注了如何InnoDB通过主键顺序组织数据,以及其复杂的页管理和数据存放机制。

目录

五 表

(一)索引组织表

(二)逻辑存储结构

1 表空间

2 段

3 区

4 页

5 行


五 表

(一)索引组织表

在InnoDB中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表。每个InnoDB的表都有主键,如果创建表时没有显式的定义主键,则InnoDB会自动为表选择或创建主键:

  1. 判断表中是否有非空的唯一索引,若有则该列为主键,若有多个则第一个定义的索引列为主键。
  2. 如果没有非空的唯一索引,则创建一个6字节大小的列作为主键。

(二)逻辑存储结构

InnoDB中,所有数据都被逻辑的存放在一个空间中,称为表空间(tablespace)。表空间又由段(segment)、区(extent)、页(page)组成,如下图所示:

1 表空间

表空间是InnoDB逻辑结构的最高层,所有数据都放在表空间中。我们知道InnoDB有一个共享表空间,所有数据都存放在这个表空间中,如果用户启用了参数innodb_file_per_table,则每张表内的数据可以单独放到一个表空间内。

需要注意,每张表空间只存放数据、索引和插入缓冲Bitmap页,其他的回滚信息、事务信息、二次写缓冲还是存放在共享表空间。

2 段

表空间是有各个段组成的,常见的段有数据段、索引段、回滚段等。我们知道InnoDB是索引组织表,因此索引段即为表空间中的非叶子节点段,数据段为表空间中的叶子节点段(参照上文结构图)。

注意:回滚段较为特殊。

3 区

区是由连续页组成的空间,每个区的大小固定为1MB,为了保证区中页的连续性,InnoDB一次从磁盘申请4到5个区,一个区中默认包含64个连续的页(由于页的可压缩行和页默认大小的可配置性,这个值会发生变化)。

4 页

页是InnoDB磁盘管理的最小单位,页的大小默认为16KB,从InnoDB1.2.x版本开始,可通过innodb_page_size将页的默认大小设置为4K、8K、18K。

常见的页类型有:

  1. 数据页
  2. undo页
  3. 系统页
  4. 事务数据页
  5. 插入缓冲位图页
  6. 插入缓冲空闲列表页
  7. 未压缩的二进制大对象页
  8. 压缩的二进制大对象页

5 行

InnoDB中的数据是按行存放的,每个页中最多允许存放16KB / 2 – 200行,也就是7992行记录。

 

特此声明:本系列博客为均为《MySql技术内幕 InnoDb存储引擎》读书笔记,存在错误还请指正

参考资料

《MySql技术内幕 InnoDb存储引擎》

### 回答1: 《MySQL 技术内幕 InnoDB 存储引擎》是一本探讨 MySQLInnoDB 存储引擎技术书籍,该书主要讲解了 InnoDB 存储引擎的原理、架构和实现细节。 InnoDBMySQL 数据库的默认存储引擎,具有事务处理和行级锁定等特性,广泛应用于企业级数据库系统。因此,了解 InnoDB 存储引擎的内部工作原理和性能优化技巧对于 MySQL 数据库的使用和优化非常重要。 这本书首先介绍了数据库系统和存储引擎的基本概念,然后详细讲解了 InnoDB 存储引擎的体系结构和核心组件。读者可以了解到 InnoDB 存储引擎是如何将数据存储在磁盘上,以及如何通过索引加快查询速度。 在介绍完基础知识之后,书中继续深入讲解了 InnoDB 存储引擎的事务处理机制、并发控制和崩溃恢复等关键技术。读者可以学习到如何正确使用事务,并了解到 InnoDB 是如何通过行级锁定来实现并发访问的。 此外,书中还涵盖了 InnoDB 存储引擎的性能优化技巧和调试方法。读者可以学习到如何通过合理的配置和索引设计来提升查询性能,以及如何通过监控和分析工具来定位和解决性能问题。 总之,《MySQL 技术内幕 InnoDB 存储引擎》是一本深入剖析 InnoDB 存储引擎的权威技术书籍,对于想要深入理解和优化 MySQL 数据库的开发人员和数据库管理员来说是一本非常有价值的参考资料。 ### 回答2: 《MySQL技术内幕InnoDB存储引擎》是一本深入讲解MySQL InnoDB存储引擎技术书籍。InnoDBMySQL中的一种存储引擎,相比其他存储引擎,如MyISAM,它拥有更好的事务支持和并发控制能力,可以提供更高的数据一致性和可靠性。 这本书主要从架构、存储、索引、事务、锁定等方面对InnoDB存储引擎进行了详细的介绍和分析。首先,作者介绍了InnoDB的整体架构,包括缓冲池、日志系统、刷新机制等,帮助读者理解InnoDB的内部工作原理。 然后,书中详细解释了InnoDB的物理存储机制,包括页结构、数据页、索引页等。通过了解这些概念,读者可以更好地理解数据在磁盘上的存储方式,进而优化查询性能和空间利用。 接着,书中介绍了InnoDB的索引机制,包括B+树索引和自适应哈希索引。通过学习这些索引类型的原理和使用方法,读者可以更好地选择和创建适合自己业务需求的索引,提高查询效率。 此外,该书还详细说明了InnoDB的事务处理机制,包括事务的隔离级别、锁定机制、行锁和锁等。通过学习这些内容,读者可以更好地理解和掌握InnoDB的并发控制技术,避免数据冲突和锁定问题。 总而言之,《MySQL技术内幕InnoDB存储引擎》通过深入讲解InnoDB的各个方面,帮助读者更好地理解和应用该存储引擎。无论是MySQL开发人员还是DBA,都可以从这本书中获得对InnoDB的深入了解,提高数据库性能和稳定性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值