三、文件

image

  • 参数文件:告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还会介绍各种参数的类型。
  • 日志文件:用来记录MySQL实例对某种条件作出响应时写入的文件,如错误日志文件、二进制日志文件、慢查询日志文件、查询日志文件等。
  • socket文件:当用UNIX域套接字方式进行连接时需要的文件
  • pid文件:MySQL实例的进程ID文件
  • MySQL表结构文件:用来存放MySQL表结构定义文件
  • 存储引擎文件:真正存储了记录和索引等数据

3.1 参数文件

参数类型:

  • 动态参数
  • 静态参数

动态参数意味着可以在MySQL实例运行中进行更改,静态参数说明在整个实例生命周期内都不得进行更改,就好像是只读的。可以通过SET命令对动态的参数值进行修改,SET的语法如下:

SET 
| [global | session] system_var_name = expr
| [@@global. | @@session. | @@] system_var_name = expr

set read_buffer_size=76813;
set @@session.read_buffer_size\G;

3.2 日志文件

image

1)错误日志

该文件不仅记录了所有的错误信息,也记录一些警告信息或正确的信息

默认情况下错误文件的文件名为服务器的主机名

2)慢查询日志

long_query_time设置

  • 设置 long_query_time 这个阈值后,MySQL数据库会记录运行时间超过该值得所有SQL语句,但运行时间正好等于 long_query_time 的情况并不会被记录下
  • 其次,从MySQL5.1 开始, long_query_time 开始以微秒记录SQL语句运行的时间,之前仅用秒为单位记录。

long_queries_not_using_indexes 如果运行得SQL语句没有使用索引,则MySQL数据库同样会将这条SQL语句记录到慢查询日志文件

MySQL5.6.5 log_throttle_queries_not_using_indexes,用来表示每分钟记录到 slow_log 的且未使用索引的SQL语句次数。该值默认为0,表示没有限制。

3)查询日志

记录了所有对MySQL数据库请求的信息,无论这些请求是否得到了正确的执行。

4)二进制日志(binary log)

记录了对MySQL数据库执行更改的所有操作,但是不包括 SELECTSHOW 这类操作,因为这类操作对数据本身没有修改。5

二进制日志主要有以下几种作用:

  • 恢复:某些数据的恢复需要二进制日志
  • 复制(replication):其原理和恢复类似,通过复制和执行二进制日志使一台远程的MySQL数据库(slave或standby)与一台MySQL数据库(master或primary)进行实时同步
  • 审计:用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入攻击

5)套接字文件

在UNIX系统下本地连接MySQL可以采用UNIX域套接字方式,这种方式需要一个套接字(socket)文件

6)pid文件

当MySQL实例启动时,会将自己的进程ID写入一个文件中-该文件即为pid文件。该文件可由参数pid_file控制,默认位于数据库目录下,文件名为主机名.pid

7)表结构定义文件

MySQL数据的存储是根据表进行的,每个表都会有与之对应的文件。但不论表采用何种存储引擎,MySQL都有一个以 frm 为后缀名的文件,这个文件记录了该表的表结构定义

8)InnoDB 存储引擎文件

之前介绍的文件都是MySQL数据库本身的文件,和存储引擎无关。除了这些文件外,每个表存储还有其自己独有的文件。

表空间文件

ibd

重做日志文件

posted @ 2023-09-23 09:50  LHX2018  阅读(39)  评论(0编辑  收藏  举报