构成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有关的事务日志。
  • 记录的内容不同。二进制记录事务的具体操作内存,而重做日志记录关于每个页的更改的物理情况。
  • 写入时间不同,二进制文件只在事务提交前进行记录,只向磁盘写一次,而重做日志不断地写。

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

MySQL技术内幕InnoDB存储引擎(三)——文件相关的更多相关文章

  1. 《mysql技术内幕 InnoDB存储引擎(第二版)》阅读笔记

    一.mysql架构 mysql是一个单进程多线程架构的数据库. 二.存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是 ...

  2. Mysql技术内幕——InnoDB存储引擎

    Mysql技术内幕——InnoDB存储引擎 http://jingyan.baidu.com/article/fedf07377c493f35ac89770c.html 一.mysql体系结构和存储引 ...

  3. mysql技术内幕InnoDB存储引擎-阅读笔记

    mysql技术内幕InnoDB存储引擎这本书断断续续看了近10天左右,应该说作者有比较丰富的开发水平,在源码级别上分析的比较透彻.如果结合高可用mysql和高性能mysql来看或许效果会更好,可惜书太 ...

  4. 《MySQL技术内幕 InnoDB存储引擎 》学习笔记

    第1章  MySQL体系结构和存储引擎 1.3 MySQL存储引擎 数据库和文件系统最大的区别在于:数据库是支持事务的 InnoDB存储引擎: MySQL5.5.8之后默认的存储引擎,主要面向OLTP ...

  5. (转)Mysql技术内幕InnoDB存储引擎-表&索引算法和锁

    表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...

  6. MySQL技术内幕InnoDB存储引擎(表&索引算法和锁)

    表 4.1.innodb存储引擎表类型 innodb表类似oracle的IOT表(索引聚集表-indexorganized table),在innodb表中每张表都会有一个主键,如果在创建表时没有显示 ...

  7. 【Mysql技术内幕InnoDB存储引擎】读书笔记

    一.存储引擎 1.InnoDB引擎 设计目标是面向在线事务(OLTP)处理的应用. 支持事务.行级锁.通过多版本并发控制(MVCC)支持高并发.提供一致性非锁定读.next-key locking避免 ...

  8. MySQL技术内幕InnoDB存储引擎(二)——InnoDB存储引擎

    1.概述 是一个高性能.高可用.高扩展的存储引擎. 2.InnoDB体系架构 InnoDB存储引擎主要由内存池和后台线程构成. 其中,内存池由许多个内存块组成,作用如下: 维护所有进程和线程需要访问的 ...

  9. MySQL技术内幕InnoDB存储引擎(七)——事务

    什么是数据库的事务? 事务是访问并更新数据库中各种数据的一个程序执行单元.事务也是数据库区别于文件系统的一个重要特性. 事务需要满足的特性 1.原子性 原子性就是指数据库中的一个完整的事务是不可分割的 ...

随机推荐

  1. 开发工具之Git(二)

    目录 四.Git安装与配置 (一)安装 (二)配置 (三)创建仓库 五.Git基本命令 六.Git分支 上一篇讲了Git的基本原理,建议没看过的同学先看看,然后这次我们来讲Git的具体操作和指令. 四 ...

  2. 从头学起Verilog(一):组合逻辑基础与回顾

    引言 该部分主要回顾了本科时数字电路中组合逻辑电路部分,内容相对简单和基础. 内容主要包括:布尔代数相关知识,卡诺图,最大项与最小项,竞争和冒险以及一些常见模块 数字电路中的逻辑 组合逻辑:输出可以表 ...

  3. ubuntu服务器启动过程中重启卡死的问题解决

    在grub默认参数当中添加 GRUB_RECORDFAIL_TIMEOUT=0 写于: 2014年07月23日 更新于: 2015年03月24日

  4. PID算法的C语言实现

    1.根据我控制算法类文章中关于PID的理论的一些描述,同时也根据网络上一些其他的PID文章,以及自己最近一个项目的实践后,总结了几套基于C语言的PID算法,由于网络中很少有人进行分享完整的PID算法实 ...

  5. 我要进大厂之大数据MapReduce知识点(1)

    01 我们一起学大数据 老刘今天分享的是大数据Hadoop框架中的分布式计算MapReduce模块,MapReduce知识点有很多,大家需要耐心看,用心记,这次先分享出MapReduce的第一部分.老 ...

  6. 一个提高GPU模糊算法的速度的方法

    一个提高GPU模糊算法的速度的方法 我们知道,模糊算法,比如高斯模糊是卷积算法的一种应用.计算图像中一个像素的模糊颜色值需要通过采样周围像素的颜色值来计算. 对于GPU应用,比如OpenGL,在sha ...

  7. Nmap详解

    扫描方式 -Pn/-P0:扫描前不用ping测试目标是否可达,默认所有目标端口都可达 -sT:TCP Connect扫描,进行完整的TCP三次握手,该类型扫描已被检测,且会在目标日志中记录大量连接请求 ...

  8. vue项目中h5移动端中通过flex布局实现首尾固定,中间滚动(借鉴)

    html中 <div class="flexLayoutr"> <div class="div_head"></div> & ...

  9. leetcode151. 翻转字符串里的单词

    给定一个字符串,逐个翻转字符串中的每个单词. 示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: & ...

  10. 【模板】【P3402】可持久化并查集

    (题面来自洛谷) 题目描述 n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 ...