• MySQL技术内幕InnoDB存储引擎(三)——文件相关


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

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

  • 相关阅读:
    Navigator对象
    Location对象
    History 对象
    计时器用法
    window对象
    某班的成绩出来了,现在老师要把班级的成绩打印出来,和 显示当前时间
    牛客练习赛14A(唯一分解定理)
    贪心法(举例子强行凑规律)
    线性筛(欧拉筛法)
    欧拉函数
  • 原文地址:https://www.cnblogs.com/lippon/p/14117625.html
Copyright © 2020-2023  润新知