文章插图
磁盘写入方式对比
可以使用下面的命令查看这些文件的保存目录,如果没有另外指定,一般情况下在/var/lib/mysql目录下
show variables like '%datadir%';
数据文件这里主要介绍比较常用的两种存储引擎InnoDB和MyISAM的数据文件构成 。
InnoDB数据文件包括以下三种格式
- .frm文件
- .ibd文件
- ibdata文件
MyISAM数据文件包括以下三种格式
- .frm文件
- .myd文件
- .myi文件
日志文件
可以下面的命令查看日志的开启情况,开启或配置了对应的日志文件后,才会生成相应的日志文件 。
show variables like '%log_%';
日志文件大概分7类,包括错误日志(error log)、二进制日志(bin log)、通用查询日志(general query log)、慢查询日志(slow query log)、重做日志(redo log)、回滚日志(undo log)、中继日志(relay log) 。- 错误日志(error log)
-- 可以直接定义为文件路径,也可以为ON|OFF,默认的错误日志名称:hostname.errlog_error=/var/log/mysqld.log-- 只能使用1|0来定义开关启动,默认是启动的log_warings=1
- 二进制日志(bin log)
log-bin=mysql-bin
也可以这样log-bin=ON|OFFlog_bin_basename=mysql-bin-- 有必要也可以指定索引-- log_bin_index=mysql-bin.index
其中mysql-bin是binlog日志文件的basename,binlog日志文件的完整名称:mysql-bin-000001.log- 通用查询日志(general query log)
show global variables like 'general_log';
可以通过下面的配置开通日志-- 启动开关general_log={ON|OFF}-- 日志文件变量,而general_log_file如果没有指定,默认名是host_name.loggeneral_log_file=/PATH/TO/file-- 记录类型log_output={TABLE|FILE|NONE}
- 慢查询日志(slow query log)
-- 开启慢查询日志slow_query_log=ON-- 慢查询的阈值long_query_time=3-- 日志记录文件如果没有给出file_name值,默认为主机名,后缀为-slow.log 。-- 如果给出了文件名,但不是绝对路径名,文件则写入数据目录 。slow_query_log_file=file_name
以上的设置,记录执行时间超过long_query_time秒的所有查询语句- 重做日志(redo log)
它用于确保事务的持久性,防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性 。其记录的是物理数据页面的修改的信息,它是顺序写入redo log file的物理文件中去的 。
事务开始之后就产生redo log,redo log的落盘并不是随着事务的提交才写入的,而是在事务的执行
过程中,便开始写入redo log文件中 。
当对应事务的脏页写入到磁盘之后,redo log的使命也就完成了,重做日志占用的空间就可以重用(被覆盖) 。
推荐阅读
- 茶百科之金奖惠明茶,金奖惠明茶冲泡方式及品饮茶香
- 如何在mysql 造1亿条记录的大容量数据表?
- 茶百科之永春佛手,永春佛手茶色泽深绿色
- SSL泛域名证书?免费生成!
- MySQL进阶之配置文件说明
- 10分钟完成MySQL对emoji的支持
- Netty组件之Channel实例化
- 在淘宝退货退款,一般什么时候收到退款 淘宝退款是收到货物之后才退款吗
- 茶山谱之勐海勐宋,勐宋茶山之大曼吕
- 茶文化之潮汕文化,枣庄市茶文化研究会召开第届会员代表大会