InnoDB介绍

作者: 王小冬 | 来源:发表于2018-07-21 11:14 被阅读80次

InnoDB介绍

InnoDB是事务安全的mysql存储引擎,也是mysql的默认存储引擎,特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读。同时也被设计用来最有效地利用以及使用内存和CPU。

1. InnoDB逻辑存储结构

从InnoDB存储引擎的逻辑存储结构来看,所有数据都被逻辑地存放在一个空间中,称之为表空间。表空间依次由段(segment)、区(extent)、页(page)组成。页有时候也叫块(block)。

InnoDB逻辑存储结构.png

1. 表空间

所有的数据都存放在表空间中,包括数据、索引、插入缓冲Bitmap页、回滚(undo)信息、系统事务信息、二次写缓冲等。默认情况下InnoDB有一个共享表空间ibdata1,即所有数据默认存储在这个表空间内。如果用户启用了参数innodb_file_per_table,则每张表内的数据可以单独放到一个表空间中。启用了这个参数,每张表的表空间内存放的只是数据、索引和插入缓冲页,其他类型的数据还是存放在共享表空间内。

2. 段

常见的段有数据段、索引段、回滚段等。在B+树中,数据段就是叶子节点,索引段就是非索引节点。

3. 区

区是由连续页组成的空间,在任何情况下,每个区的大小都是1MB,默认情况下,一个区中有64个连续的页。

4. 页

页是InnoDB磁盘管理的最小单位,默认大小为16KB,常见的页类型有:

  • 数据页(B-tree Node)
  • undo页(undo Log Page)
  • 系统页(System Page)
  • 事务数据页(Transaction system Page)
  • 插入缓冲位图页(Insert Buffer Bitmap)
  • 插入缓冲空闲列表页(Insert Buffer Free List)
  • 未压缩的二进制大对象页(Uncompressed BLOB Page)
  • 压缩的二进制大对象页(compressed BLOB Page)

5. 行

InnoDB存储引擎是面向列的,也就是说是按行存放数据的。每个页最多允许存放16KB / 2 - 200行的记录,即7992行记录。

相关文章

  • InnoDB介绍

    InnoDB介绍 InnoDB是事务安全的mysql存储引擎,也是mysql的默认存储引擎,特点是行锁设计、支持M...

  • [翻译] MySQL 之 InnoDB 特性和最佳实践

    官方文档:15.1 Introduction to InnoDB 一、MySQL 之 InnoDB 总体介绍 In...

  • mysql索引不是万能的

    介绍: 以下所有的介绍都是按照InnoDB存储引擎进行介绍的。 为了减少磁盘随机读取次数,InnoDB 采用页而不...

  • InnoDB锁问题

    介绍 InnoDB本身遵守DML操作的ACID模型,所以InnoDB本身支持事务。并且InnoDB也支持多种粒度的...

  • mysql 索引

    注释:此文章的索引介绍是基于InnoDB存储引擎来介绍的,没特别声明則Mysql默认式InnoDB存储引擎存储。 ...

  • MYSQL实战优化——InnoDB存储引擎介绍

    InnoDB存储引擎介绍 InnoDB的重要内存结构:缓冲池首先假设我们有一条SQL语句是这样的: InnoDB存...

  • MySQL各存储引擎间的比较

    作者:刘仁鹏参考资料:《MySQL技术内幕 InnoDB存储引擎》 1.常用存储引擎介绍 1. InnoDB 支持...

  • InnoDB存储引擎的表的逻辑存储结构

    本文是《Mysql技术内幕--InnoDB存储引擎》的学习笔记。 本文主要内容是:介绍InnoDB的表的逻辑存储结...

  • mysql 索引结构图解

    摘要: 本篇介绍下Mysql的InnoDB索引相关知识,从各种树到索引原理到存储的细节。 InnoDB是Mysql...

  • 15.mysql锁问题(2)-InnoDB

    5. InnoDB 行锁 5.1 行锁介绍 行锁特点 :偏向InnoDB 存储引擎,开销大,加锁慢;会出现死锁;锁...

网友评论

    本文标题:InnoDB介绍

    本文链接:https://www.haomeiwen.com/subject/tyqhmftx.html