构成MySQL数据库和InnoDB存储引擎表的文件类型有:

  1. 参数文件:MySQL实例运行时需要的参数就是存储在这里。
  2. 日志文件:用来记录MySQL实例对某种条件做出响应时写入的文件。
  3. socket文件:用于套接字连接。
  4. pid文件,MySQL实例的进程ID文件。
  5. MySQL表结构文件:用来存放MySQL表结构定义文件。
  6. 存储引擎文件:存储引擎自己用来记录数据的文件,真正地存储记录和索引等数据。

1-5都是MySQL的五年,只有6是存储引擎自己的文件。

1.参数文件

作用:
MySQL启动的时候,数据会先去读一个配置参数文件,用于初始化,这些参数通常定义了某种内存结构的大小。

什么是参数?
就是一个键值对,比如定义了innodb_buffer_pool_size = 1G ,那么这个字符串就是键,1G就是值。在MySQL启动的时候,就是需要这些初始化参数。

参数类型

主要分为两类:

  • 动态参数:在运行的时候进行更改。
  • 静态参数:整个实例的运行周期都不能更改。

2.日志文件

用于记录影响数据库的各种类型的活动。
常见的日志包括:

  • 错误日志
  • 二进制日志
  • 慢查询日志
  • 查询日志

错误日志

作用:
记录MySQL启动运行停止是的错误、警告、正确的信息。

慢查询日志

作用:
帮助定位可能存在问题的SQL语句,从语句层面进行优化。

举例:
比如将超过一定阈值时间的SQL语句都记录到慢查询日志中,然后运行一段时间,对其查看,优化性能查的语句。

查询日志

作用:
记录所有的MySQL数据库请求信息,无论是否正确执行。

二进制文件

作用:
记录了所有对数据库执行更改的操作,不包括SELECT、SHOW这类查询操作,因为它们不会修改数据。

作用还分为:

  • 恢复:某些数据的恢复所需。
  • 复制:通过复制和执行二进制文件,将一台数据库与另一台数据库进行实时同步。
  • 审计:判断是否存在SQL注入攻击。

3.套接字文件

作用:
UNIX系统下本地连接数据可采用的套接字方式,需要该文件。

4.pid文件

作用:
实例启动的时候,会将自己的进程ID写入这个文件中。

5.表结构定义文件

作用:
用于记录存储数据的表的结构定义。

6.InnoDB存储引擎文件

上面介绍的都是MySQL本身的文件,与存储引擎无关。

表空间文件

作用:
InnoDB采用将存储数据按表空间进行存放的设计,表空间文件就是真正存放数据库数据的文件。

重做日志文件

作用:
用于恢复主机因为掉电宕机而损失的一部分数据,保证数据的完整性。

与上面提到的MySQL数据库二进制文件有什么区别?

  • 二进制文件会记录所有与数据库相关的修改操作,包括其他引擎的日志,而这里的重做日志只是InnoDB有关的事务日志。
  • 记录的内容不同。二进制记录事务的具体操作内存,而重做日志记录关于每个页的更改的物理情况。
  • 写入时间不同,二进制文件只在事务提交前进行记录,只向磁盘写一次,而重做日志不断地写。

重做日志写入过程:
先写入重做日志缓冲,在按顺序写入日志文件。

最新文章

  1. Hawk 1.2 快速入门2 (大众点评18万美食数据)
  2. android 底层入门开发(二)
  3. project 2016 11 20 树的多项式
  4. 使用EasyBCD完美实现Windows7与Linux双系统
  5. SVN版本管理trunk及branch相关merge操作
  6. php file_put_contents() 写入回车
  7. 转载Agile Development 敏捷软件开发介绍
  8. 图片攻击-BMP图片中注入恶意JS代码 <转载>
  9. Wiz开发 定时器的使用与处理
  10. javascript 第26节 jQuery对象
  11. PHP学习心得(十)——控制结构
  12. weekend110(Hadoop)的 第七天笔记
  13. 文件上传input type="file"样式美化
  14. 【JVM】JVM内存结构 VS Java内存模型 VS Java对象模型
  15. C# 处理文件的压缩与解压
  16. 备份原有yum源,设置为自建yum源的脚本
  17. mssql 一次向表中插入多条数据的方法分享 (转自:http://www.maomao365.com/?p=6058)
  18. core.net 创建coreclass 项目出现一些问题
  19. Java高级面试题解析(一)
  20. Expm 9_2 有向图的强连通分量问题

热门文章

  1. prometheus函数介绍
  2. Jmeter 添加 计数器
  3. Qt QPainter画个球啊
  4. Pinpoint 编译环境搭建(Pinpoint系列一)
  5. 网络拓扑实例之VRRP负载分担(四)
  6. Wasp XT合成器功能介绍
  7. CorelDRAW常用工具之橡皮擦工具
  8. Java中的Set对象去重
  9. JZOJ2020年8月14日提高组反思
  10. 浅尝 Elastic Stack (三) Logstash + Beats