1. 表空间文件

  • InnoDB 采用将存储的数据按表空间进行存放的设计
  • 在默认配置下,会有一个初始大小为10MB,名为ibdata1的文件
  • 该文件就是默认的表空间文件
  • 用户可以通过多个文件组成一个表空间

  • 所有基于InnoDB 存储引擎的表的数据都会记录到该共享表空间(innodb_data_file_path指向的表空间)innodb_file_per_table 参数用于指定独立表空间。

    • 独立表空间存储的是该表的数据、索引和插入缓存BITMAP 等信息
    • 其余信息存放在共享表空间,例如 Insert Buffer 等

2. 重做日志文件(redo log file)

  • 虽然属于日志文件,但是是InnoDB 存储引擎中特有的
  • 每个InnoDB 存储引擎至少有1个redo 日志文件组,每个组下至少有2个redo log 文件,如默认的ib_logfile0 和ib_logfile1
  • 为了得到更高的可靠性,用户可以设置多个镜像日志组,将不同的文件组放在不同的磁盘上,以此提高redo log的高可用性
  • 日志组中的每个redo log 文件大小一致,并以循环写入的方式运行。
    • 先写ib_logfile0
    • ib_logfile0 写满后切换为ib_logfile1
    • ib_logfile1 写满后切换为ib_logfile0
  • redo log 文件的大小应该设置合适。设置太大,在恢复时可能需要很长的时间;设置太小,可能导致一个事务的日志需要多次切换redo log 文件,另外redo log 文件太小还会导致频繁发生async checkpoint,导致性能的抖动
  • 记录的是关于每个页的更改的物理情况
  • redo log 基本格式

▲ redo_log_type 占用1字节,表示redo 日志的类型

▲ space 表示表空间ID,但采用压缩的方式,因此占用的空间可能小于4字节

▲ page_no:表示页的偏移量,同样采用压缩的方式

▲ redo_log_body:表示每个redo 日志的数据部分,恢复时需要调用相应的函数进行解析

  • redo 日志写入过程

InnoDB 存储引擎(8)——InnoDB 存储引擎文件相关推荐

  1. 3种mysql的储存机制_MySQL三种InnoDB、MyISAM和MEMORY存储引擎对比

    三种引擎的区别: 事务:InnoDB支持事务,MyISAM和MEMORY两个不支持. 存储限制:InnoDB有64TB的存储限制,MyISAM和MEMORY要跟具体情况而定. 空间使用:InnoDB对 ...

  2. MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

    MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的"存储引擎"(storage_engine)呢?有时候面试题中也会问道MySQL几种常用的存储引 ...

  3. mysql 内存引擎_MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

    MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的"存储引擎"(storage_engine)呢?有时候面试题中也会问道MySQL几种常用的存储引 ...

  4. Mysql 存储引擎中InnoDB与Myisam的主要区别

    一直以为我spring事物没有配置好,结果发现是mysql的表本身设置成了Myisam 引擎.改成innodb就支持事物了. 1, 事务处理 innodb 支持事务功能,myisam 不支持. Myi ...

  5. mysql存储引擎中INNODB和MyISAM的区别

    切记:存储引擎是基于表的,而不是数据库. 存储引擎概念: MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不 ...

  6. MySQL常用存储引擎之Innodb

    在MYSQL5.5版本之后,具体是在5.58版本之后,InnoDB代替MYISAM称为MYSQL的默认存储引擎,说实话呢,是一个非常重要的事情,之前在使用MYSQL时,说别人使用InnoDB,而不用m ...

  7. mysql存储引擎innodb_MySQL常用存储引擎之Innodb

    1. mysql 5.5及之后版本默认存储引擎 为不了解存储引擎的数据库使用者,提供了很大的便利,因为innodb适应大部分应用场景. 和myisam不同的是,innodb是一种事务型存储引擎.也就是 ...

  8. Mysql存储引擎中InnoDB与Myisam的区别

    为什么80%的码农都做不了架构师?>>>    1. 事务处理 innodb 支持事务功能,myisam 不支持. Myisam 的执行速度更快,性能更好. 2. select ,u ...

  9. mysql innodb和myisam区别_MySQL?存储引擎简介

    ​大家好,我是anyux.本文介绍MySQL存储引擎. 简介 相当于Linux文件系统,只不过比文件系统强大 功能 数据读写 数据安全和一致性 提高性能 热备份 自动故障恢复 高可用方面支持 引擎类别 ...

  10. MySQL存储引擎及InnoDB并发控制介绍

    MySQL存储引擎采用了可插拔的结构,即用户可以根据自己的需要来选择不同的存储引擎. 下表是MySQL不同的存储引擎的不同的特性: Feature<?xml:namespace prefix = ...

最新文章

  1. C++访问属性和继承属性浅析
  2. Android开发四年以来的工作难点总结
  3. LuckyDraw app使用CosmosDB的成本分析
  4. 逝去的大学生活自己丢了什么
  5. 从浪漫走向坚韧:开源数据库的演变
  6. mysql5.7是测试版本吗_mysql免安装版本测试(mysql-5.7.18-winx64)
  7. 使用DataTable动态绑定GridView
  8. 【java】java 多线程 异步计算 FutureTask 源码详解
  9. Java杂记3—流程控制之条件 1
  10. 提高语音识别率:必须加入深度学习吗?
  11. c语言无纸化测评答案,无纸化计算机二级C语言程序设计题库答案程序题
  12. 一张图解AlphaGo原理及弱点
  13. 阳性水草与阴性水草的区分
  14. 微云网页版服务器繁忙,腾讯微云传输速度慢的几种原因及解决方法
  15. 20 张图表达程序员的心酸
  16. 蛋花花分析到底该不该让孩子学编程
  17. 聚类分析的评价指标(性能度量)
  18. 手把手教你使用Python网络爬虫获取音效信息
  19. python入门教程pdf免费_python入门教程pdf
  20. 互联网日报 | 6月17日 星期四 | 神舟十二号载人飞船今日发射;荣耀50系列正式发布;黑石拟30.5亿美元收购SOHO中国...

热门文章

  1. Ubuntu安装时出现“failed to load ldlinux.c32”[已解决]
  2. orcadcapture安装_OrCAD下载
  3. 11 EDA技术实用教程【时序电路的Verilog设计2】
  4. 智能硬件产品开发分享
  5. java 大学考试_大学java期末考试试题
  6. 前端将图片等文件变成二进制流再存入数据库,并实现二进制流显示及下载
  7. web中将DataTable作为数据源导出Excel (带格式)
  8. sql注入攻击与防御第二章
  9. jQuery jqGrid 文档
  10. Win7开机动画不见了