【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件

devtools/2024/11/16 2:37:37/

在这里插入图片描述

MySQL与Oracle一样都是通过逻辑存储结构来管理物理存储结构,即管理硬盘上存储的各种文件。下面将详细介绍InnoDB存储引擎中的数据文件和重做日志文件。

一、数据文件

“.ibd”文件和ibdata文件 这两种文件都是存放Innodb数据的文件,之所以有两种文件来存放Innodb的数据(包括索引),是因为 Innodb 的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。

视频讲解如下:

MySQL InnoDB的数据文件

【赵渝强老师】MySQL InnoDB的数据文件

提示:当使用innodb存储引擎时,如果再配置文件中没有配置innodb_file_per_table,默认情况下,所有库中的所有使用innodb存储引擎的表示数据都存在‘ibdata1’这个文件中,表的数据信息和索引信息都存储在ibdata1中,但是如果开启了innodb_file_per_table参数,表示每个innodb表类型的表使用单独的表空间数据文件。

二、重做日志文件(redo log)

redo log是InnoDB存储引擎层生成的日志,主要为了保证数据的可靠性和事务的持久性。视频讲解如下:

MySQL InnoDB的重做日志文件

【赵渝强老师】MySQL InnoDB的重做日志

每个redo log默认的大小是1G,由参数“innodb_log_file_size”参数决定。

mysql> show variables like "innodb_log_file_size";# 输出的信息如下:
+----------------------+------------+
| Variable_name        | Value      |
+----------------------+------------+
| innodb_log_file_size | 1073741824 |
+----------------------+------------+

而redo log文件存放的路径由参数“innodb_log_group_home_dir”决定。

mysql> show variables like "innodb_log_group_home_dir";# 输出的信息如下:
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| innodb_log_group_home_dir | ./    |
+---------------------------+-------+

redo log文件与MySQL的数据文件默认存放在同一个目录下。通过下面方式可以进行查看:

[root@mysql11 data]# pwd
/usr/local/mysql/data
[root@mysql11 data]# ll ib_logfile*
-rw-r-----. 1 mysql mysql 1073741824 Feb 20 20:11 ib_logfile0
-rw-r-----. 1 mysql mysql 1073741824 Feb 19 11:22 ib_logfile1# 这里可以看到有两个ib_logfile开头的文件,它们就是log group中的redo log file。

MySQL与Oracle一样都采用重做日志组的方式来管理redo log。一个组内由多个大小完全相同的redo log file组成,组内redo log file的数量由变量 “innodb_log_files_group”决定,默认值为2。

mysql> show variables like "innodb_log_files_in_group";# 输出的信息如下:
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| innodb_log_files_in_group | 2     |
+---------------------------+-------+

http://www.ppmy.cn/devtools/134321.html

相关文章

C++11新特性(二)

目录 一、C11的{} 1.初始化列表 2.initializer_list 二、可变参数模版 1.语法与原理 2.包扩展 3.empalce接口 三、新的类功能 四、lambda 1.语法 2.捕捉列表 3.原理 五、句装器 1.function 2.bind 一、C11的{} 1.初始化列表 C11以后想统⼀初始化⽅式&#xff0…

node.js学习笔记-快速搭建一个 Express 项目的基本骨架(一)

一、前言 express-generator是 Express 框架提供的一个应用程序生成器工具,它可以帮助你快速搭建一个 Express 项目的基本骨架,节省大量手动创建文件和配置的时间。 以下是关于它的详细介绍和使用步骤: 二、安装 首先,确保你已经…

万字长文解读机器学习——感知机、MLP、SVM

🌺历史文章列表🌺 机器学习——损失函数、代价函数、KL散度机器学习——特征工程、正则化、强化学习机器学习——常见算法汇总机器学习——感知机、MLP、SVM机器学习——KNN机器学习——贝叶斯机器学习——决策树机器学习——随机森林、Bagging、Boostin…

11.11 机器学习-数据集的获取和划分

# sklearn玩具数据集 # 鸢尾花 数据集使用 from sklearn.datasets import load_iris,load_wine,fetch_20newsgroups # 导入 数据集 load本地 feath联网 from sklearn.model_selection import train_test_split # 数据集划分方法 from sklearn.feature_extraction import Di…

公开一下我的「个人学习视频」!

哈喽,大家好,我是六哥。 鉴于上次分享,很多同学说,六哥能整一些百度网盘的资源吗? 可以,来安排,看看有你心动的吗? 性能测试系列 测开系列 python方向 Java方向 主管必会系列 质…

MySQL中,使用XtraBackup进行备份锁

在MySQL中,使用XtraBackup进行备份时,备份锁的获取方式在MySQL 5.7和8.0之间有所不同。XtraBackup是一个开源的热备份工具,它支持Percona Server和MariaDB,以及Oracle的MySQL。 MySQL 5.7 在MySQL 5.7中,XtraBackup通…

杰控通过 OPCproxy 获取数据发送到服务器

把数据从 杰控 取出来发到服务器 前提你在杰控中已经有变量了(wincc 也适用) 打开你的opcproxy 软件包 opcvarFile 添加变量 写文件就写到 了 opcproxy.ini中 这个文件里就是会读取到的数据 然后 opcproxy.exe发送到桌面快捷方式再考回来 &#…

React Native 全栈开发实战班 - 数据管理与状态之Zustand应用

在 React Native 应用中,状态管理 是构建复杂用户界面的关键。随着应用规模的增长,组件之间的数据共享和状态同步变得越来越复杂。虽然 React 提供了 Context API 作为内置的状态管理解决方案,但在大型应用中,使用更强大的状态管理…