参数文件 my.cnf
- linux下文件名称 my.cnf,可以无文件启动,且有几个固定位置,按照固定位置一直读下去,以最后一次加载为准。
日志文件
错误日志 error log
- 记载着启动,关闭,运行时问题
二进制日志 bin log
- Binlog记录了对数据库的所有更改,故不包含select/show操作。
-
几种典型作用:
- 恢复,可以根据二进制日志进行point-in-time恢复
- 复制,通过binlog进行数据库与其他数据库同步
- 审计,根据binlog进行审计分析,是否有注入行为
- 当使用事务类引擎时,所以未提及会被记录到一个缓存中,等事务提交以后才将缓存中的二进制数据写入二进制文件中。
- 默认情况下,并不是每次写的时候都同步到磁盘中,如果需要进行复制等即时操作,可以将sync_binlog设置为ON。
-
三种模式:
- statement:记录sql语句。
- Row: 记录行更改情况。默认设置。update10W行,日志文件增大13MB。
- Mixed:默认用statement,特殊时期用Row模式。例如用户定义函数,UUID(),USER()等内置函数。
慢查询日志 slow query log
- 可以将运行时间设置一个阈值,将超过阈值时间的sql全部记录下来。 参数默认为:long_query_time = 10;
- Mysql5.1以后将慢sql放入一张表slow_log中,默认为csv引擎。
- 慢日志可以设置根据运行时间或逻辑IO次数记录slow_log。
查询日志 log
- 跟slow_log差不多。
socket文件 mysql.sock
- 本地连接mysql可以使用UNIX域套接字。一般在/tmp目录下mysql.sock。
pid文件 主机名.pid
- Mysql启动时,会将自己的pid写入主机名.pid文件中。
表结构文件 table_name.frm
- 不论采用何种引擎,mysql都有一个固定的表文件.frm来记录当前表结构信息。
存储引擎文件
表空间文件 ibdata1
- 默认配置下会有一个初始大小为10MB左右的ibdata1文件。
- 例如insert buffer的缓冲文件。
重做日志文件redo log
- 每个存储引擎至少有一个重做日志文件组,每个组下至少两个重做日志文件ib_logfile0和ib_logfile1。
- Redo log对性能有深入影响。如果设置太大恢复时需要很长时间。如果太小则会频繁出发checkpoint。
Redo log与二进制文件的区别:
1. 范围不同:binlog会记录所有操作,而redolog只记录innodb本身的事务日志。
2. 内容不同:binlog记录的是一个事务的具体操作。redolog记录的是一个页的更改物理情况。
3. 写入时间不同:binlog仅在事务提交前提交,只磁盘io一次。在事务过程中,不断有redo日志条目被写入到重做日志中。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。