《MySQL技术内幕:InnoDB存储引擎》读书笔记二:文件

主要包括参数文件、日志文件、socket文件、pid文件、MySQL表结构文件、存储引擎文件

1、参数文件

当MySQL实例启动时,会先去读一个配置文件。

可使用SHOW VARIABLES LIKE ‘innodb_buffer%’这种方式查看参数,如下面查看以innodb_开头的参数:

参数类型有动态参数和静态参数。

动态参数意味着你可以在MySQL实例运行中进行更改,静态参数则反之。

通过SET命令可对动态参数值进行修改。其中global关键字表示该参数修改是基于整个实例的生命周期,session表示会话期。。。

2、日志文件

1)错误日志

错误日志对MySQLde 启动、运行、关闭过程进行了记录,不但记录了出错信息,同时也记录了些警告信息或者正确的信息。使用命令SHOW VARIABLES LIKE ‘log_error’定位该文件:

2)慢查询日志

可以设定一个阈值,将运行时间超过(非等于)该值得所有SQL语句都记录到慢查询日志中。该阈值通过参数long_query_time来设置。默认10s

查看slow_query_log参数检测是否启动慢查询,默认不启动

另一个重要参数是:log_queries_not_using_indexes,该参数的意思是如果运行的SQL语句没有使用索引,则MySQL数据库会将这条语句记录到查询日志文件中。

 

① 当MySQL数据过多时,直接查看慢查询日志可能不太方便,这是可使用mysqldumpslow file.log命令,其中file.log为慢查询日志

② 使用mysqldumpslow –s al –n file.log查看锁定时间最长10条SQL语句

 

从MySQL5.1之后,可将慢查询日志记录到一张表中:slow_log

 

慢查询输出格式:log_output变量指定

可将其改成table格式:

查询例子:

显示sleep占用了10.000749秒,和前面慢查询阈值对应

 

3)二进制日志

二进制日志记录了对数据更改的所有操作,只是更改,所以SELECT、SHOW之类的操作不在范围之类

它主要有以下两个作用:

         恢复:

         复制:

默认情况下未开启,需手动开启,然而开启会有一定性能损失,但为了使用复制等功能还是值得。

 

3. 套接字文件

show variables like ‘socket’\G

4. pid文件

show variables like ‘pid_file’\G

 

5. 表结构定义文件

不管使用什么存储引擎,MySQL都会有一个以frm为后缀名名的文件,这个文件记录了该表的表结构定义

 

6.  InnoDB存储引擎文件

包括重做日志文件和表空间文件

1)重做日志文件

默认情况下会有两个重做日志文件,ib_logfile0和ib_logfile1.

它们记录了对于InnoDB存储引擎的事务日志。可以根据需要添加更多的重做日志文件。

对于有两个文件的情况下,重做日志是循环利用这两个文件,即文件0使用完后,使用文件1,文件1满后,再使用文件0。。。

重做日志可由一些参数进行设置:

重做日志大小设置过大则会在恢复时可能需要很长时间;

设置过小会导致一个事务的日志需要多次切换重做日志。

2)表空间文件

InnoDB中,存储的数据按表空间进行存放。默认配置下,会有一个初始化大小为10M的名为ibdata1的文件。

通过设置参数innodb_file_per_table,我们可以将每个基于InnoDB存储引擎的表单独产生一个表空间,文件名为 表名.ibd。

上表中test1.ibd表示表test1的表空间文件。

注意这些ibd文件仅存储该表的数据、索引和插入缓冲等信息,其余信息还是存放在默认的表空间中。

转载于:https://my.oschina.net/u/1015154/blog/801741

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值