MySQL一个显著的特点是其可插拔的存储引擎,因此MySQL文件分为两种,一种是和MySQL数据库本身相关 的文件,一种是和存储引擎相关的文件。本文主要介绍和InnoDB存储引擎相关的文件。

表空间文件

InnoDB在存储上也模仿了Oracle的设计,数据按表空间进行存储,但是和Oracle不一样的是,Oracle 的表空间是个逻辑的概念,而InnoDB的表空间是个物理的概念。

你可以通过参数 innodb_data_file_path来设置默认的表空间文件,所有基于InnoDB存储引擎的表都会存储在该文件内。如果 你想基于每个表单独生成一个表空间文件,可以设置参数innodb_file_per_table为ON,这样表的数据、索引 和插入缓冲等消息存储在单独的表空间文件中,但其余信息还是存储在默认的表空间文件中。

下图显 示了表空间文件的存储方式:

上图中主要有以下几种存储文件:

1)表结构定义文件(.frm):MySQL里每个表和每个视图都有一 个对应的.frm文件用于记录表和视图的定义。注意:该文件和存储引擎无关,属于MySQL数据库本身的文件。

2)默认表空间文件(ibdata)

3)单独表空间文件(.ibd)

重做日志文件

重做日 志文件对InnoDB存储引擎至关重要,记录了事务日志,如果数据库由于宕机导致实例失败,重新启动时,就 可以利用重做日志恢复到宕机前的一致性状态。

MySQL的重做日志和Oracle的很类似,通过循环的方 式覆盖重用,下图显示了一个拥有3个重做日志文件的重做日志文件组:

这里有个疑问 ,同样是记录事务日志,InnoDB的重做日志文件和MySQL自身的二进制文件有什么区别?它们的区别主要有以 下三点:

1)首先,范围不同。二进制文件记录所有与MySQL相关的日志记录,包括InnoDB,MyISAM, Heap等存储引擎的日志。而InnoDB的重做日志只记录InnoDB相关的事务日志。

2)其次,内容不同。 二进制文件记录的是关于一个事务的具体操作内容,而InnoDB的重做日志记录每个数据页(page)更改的物 理情况。

3)写入的时间不同。二进制文件在事务提交之前记录,在事务进行过程中,不断有重做日 志条目写入重做日志文件中。

mysql innodb文件_MySQL的InnoDB文件介绍相关推荐

  1. mysql innodb 文件_MySQL与InnoDB相关文件

    原标题:MySQL与InnoDB相关文件 上期回顾 <InnoDB存储引擎> 概要 本章将会分析构成MySQL数据库和InnoDB存储引擎的各种类型文件,这些文件有如下几种: 参数文件:主 ...

  2. mysql myisam 优点_mysql引擎Innodb和Myisam对比介绍和优缺点

    一.myisam引擎 1.mysql默认引擎,不支持事务* 2.表级锁定,更新时,锁定机制是整张表被锁定,其它连接无法更新表的数据,效率比较低下.锁的机制成本很少,但大大降低了并发性能* 3.读写互相 ...

  3. mysql文件_mysql 的各种文件详细说明

    1:数据目录 mysql> show global variables like '%datadir'; +---------------+------------------+ | Varia ...

  4. mysql重做日志文件_MySQL 重做日志文件

    一.innodb log的基础知识 · innodb log顾名思义:即innodb存储引擎产生的日志,也可以称为重做日志文件,默认在innodb_data_home_dir下面有两个文件ib_log ...

  5. mysql的扩容_MySQL的InnoDB的扩容

    innodb_data_home_dir这是InnoDB表的目录共用设置.如果没有在 my.cnf 进行设置,InnoDB 将使用MySQL的 datadir 目录为缺省目录.如果设定一个空字串,可以 ...

  6. mysql数据库怎么读文件_mysql数据库读写文件

    环境: centos7 mysql 5.6.47 用户:root@localhost 条件 mysql中涉及到读写操作,必然离不开secure_file_priv参数,它的值限制load data,s ...

  7. mysql导入csv文件_Mysql——将CSV文件导入表中

    本教程展示如何用LOAD DATA INFILE 将 CSV 文件导入MySQL表中. LOAD DATA INFILE 语句可以读取文本文件并导入数据库中. 在导入文件之前,你需要做如下准备:导入文 ...

  8. mysql多大_mysql的innodb表到底占用多大的空间?

    问题背景:最近某个数据库服务器磁盘告警,在数据库内查询information_schema.tables查看数据库一共占用了8个T左右的空间,但是在服务器上通过du命令查看数据库文件夹占用了18个T( ...

  9. mysql查看系统运行日志文件_mysql自身运行日志文件详解

    概述 日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysqld内部发生的事件,数据库 ...

最新文章

  1. C# Null 赋值
  2. php基础教程 第六步 学习数组以及条件判断switch补充
  3. json数组格式问题
  4. 思科智能交换机受多个严重漏洞影响
  5. 火星舱如何备份oracle_倒计时!火星,我们来了
  6. 【电路仿真】基于matlab Simulink四旋翼PID控制【含Matlab源码 454期】
  7. 多多客api_蚂蚁星球(原好京客)(haojingke.com)- 做大京客,享大数据营销 - 拼多多API接口...
  8. Java Apache POI 小记(读取Word通过模板创建PPT)
  9. excel几个数相加等于某个数_『excel表如何从一列数据中筛选出合计等于某数的某些数?』...
  10. 【Java代码之美】 -- Java11新特性解读
  11. Spark快速大数据分析——Spark安装与IDEA 开发(贰)
  12. SEO–关于如何通过利用流量精灵刷百度排名及排名原理~
  13. Windows ActiveMq开机自启动设置
  14. 【HoloLens2】HoloLens中如何操控自制的3D模型(移动、缩放、旋转)
  15. GALIL运动控制卡维修控制器维修DMC-1840
  16. 如何自己设计一个扫码登录
  17. 虚拟机服务器校园网访问设置,配置VMware虚拟机用绕过校园网达到无线上网配置方法...
  18. Android Q 10.1 KeyMaster源码分析(二) - 各家方案的实现
  19. torch实现自编码器_Pytorch-自编码器与变分自编码器
  20. BZOJ2654: tree(陈立杰)

热门文章

  1. SDN精华问答 | 为什么SDN要花这么长时间才被采用?
  2. mysql显示百分比例_显示值mysql的百分比
  3. uni-app 微信小程序授权登录
  4. Directory /opt/jfrog/artifactory/var has bad permissions for user id 1030
  5. Wrapper+map实现页面显示
  6. SonarQube启动报错:WrapperSimpleApp: Encountered an error running main: java.nio.file.AccessDeniedExcepti
  7. 系统架构设计师 - 软件架构设计 - 架构评估
  8. ajax异步提交案例(用户校验)
  9. 中正则表达式详解_python :正则表达式/re库 超级详细de注释解释
  10. java 牛生小牛_例题:大牛生小牛的问题解决方法