探究MySQL各类文件

栏目: 数据库 · 发布时间: 6年前

内容简介:前两篇我们了解到MySQL的整体架构,其分为了四层,包括网络连接层,核心层,存储引擎层,物理层,以及各层的作用。另外还知道了InnoDB存储引擎层的架构,包括缓存池和线程。不明白的,请移步上两篇哦。今天我们来看构成MySQL数据库和InnoDB存储引擎表的各类文件。告诉MySQL实例启动时在哪里可以找到数据库文件,以及指定某些初始化参数,如某种内存结构的大小设置。

前言

前两篇我们了解到 MySQL 的整体架构,其分为了四层,包括网络连接层,核心层,存储引擎层,物理层,以及各层的作用。另外还知道了InnoDB存储引擎层的架构,包括缓存池和线程。

不明白的,请移步上两篇哦。今天我们来看构成MySQL数据库和InnoDB存储引擎表的各类文件。

参数文件

告诉MySQL实例启动时在哪里可以找到数据库文件,以及指定某些初始化参数,如某种内存结构的大小设置。

那上面是参数呢?简单来说,可以把数据库参数看成一个键值对(key/value),比如innodb_buffer_pool_size=1G。那这些键值对都存放在哪里了呢?答案揭晓,my.ini里面存储了大量键值对(key/value),且位于MySQL的安装目录,如下图。

探究MySQL各类文件

我们打开这个文件看一下,里面都是键值对的形式。如果我们想要修改某个值,直接在这边修改,并且重启即可。

探究MySQL各类文件

日志文件

用来记录MySQL实例对某种条件做出响应时写入的文件,包括如下四种。

错误日志

记录MySQL的启动,运行和关闭中的错误信息。我们先来看一下文件存储的位置。

探究MySQL各类文件

我们去相应路径下查看该文件,可以发现出错信息。所以当MySQL数据库不能正常启动的时候,第一个必须查找的文件就是错误日志文件。

探究MySQL各类文件

二进制日志

记录对MySQL数据库进行更改的所有操作,但是不包括select和show这类操作,因为这类操作对数据本身没有影响。然而,如果是update或delete这种操作,即使对数据库没有造成影响,那么也会被记录到二进制日志中。

这段是不是特别拗口,不咋能理解,没事,我们实际操作下。

首先二进制日志文件在默认情况下并没有启动,需要手动指定参数来启动。这是不是就意味着开启这个选项会对数据库的整体性能有影响?但是根据MySQL官方手册中的测试表明,开启二进制日志会使性能下降1%,是可接受的范围。

是否下降1%,这个数字我们也无从考证,但是要晓得一点,就是会有影响,但问题不大。毕竟要在每次insert,delete,update操作后,记录日志,这肯定是要时间和空间的损耗的。

那么开始表演吧。

首先,我们先开启二进制配置,上面参数文件有说过my.ini里面存储的各种配置信息的键值对,只需要在该文件里面添加log-bin,指定了log的名称为主机名-bin,后缀为序列号,所在的路径为数据库所在的路径。

接着,重启服务器,步骤如下,重启之后,我们可以看到相应的文件。

探究MySQL各类文件

探究MySQL各类文件

探究MySQL各类文件

最后,在准备工作好了之后,我们先来查询test2的数据,然后看一下那两个文件的大小有没有变化,很明显大小还是跟之前的一样。

探究MySQL各类文件

探究MySQL各类文件

再来写一个update语句,我们可以看到影响的行数为0,但是那两个文件的大小有增加了。

探究MySQL各类文件

探究MySQL各类文件

InnoDB的存储引擎文件

表空间

InnoDB将存储的数据按表空间进行存放。在默认配置中会有一个初始大小为10MB,名为ibdata1的文件,其为所有表的表空间。当然也可以通过innodb_file_per_table设置每个表一个独立的表空间,命名规则为.ibd。是否很熟悉?没错,这就是我们上篇说到的innodb表存储在硬盘的文件之一。

探究MySQL各类文件

重做日志文件

如果断电时,InnoDB会通过重做日志来恢复到断电前的状态,保证数据的完整性。

每个InnoDB存储引擎至少有一个重做日志组group,和两个文件ib_logfile0和ib_logfile1。

他们两个大小一样,并且以循环写入的方式运行,即先写重做日志1,等到写满时,会切换到重做日志2,等到日志2写满时,再次切换到重做日志1。

探究MySQL各类文件

结束

码字不易,请多多关注哦。

探究MySQL各类文件


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Node.js开发实战

Node.js开发实战

[美] Jim R. Wilson / 梅晴光、杜万智、陈琳、纪清华、段鹏飞 / 华中科技大学出版社 / 2018-11-10 / 99.90元

2018年美国亚马逊书店排名第一的Node.js开发教程。 . Node.js是基于Chrome V8引擎的JavaScript运行环境,它采用事件驱动、非阻塞式I/O模型,具有轻量、高效的特点。Node.j s 工作在前端代码与 数据存储层之间,能够提高web应用的工作效率和 响应速度。本书以最新版Node.js 8为基础,从实际案例出发 讲解Node.js的核心工作原理和实用开发技......一起来看看 《Node.js开发实战》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具