第三章 文件
mysql中一共有六种文件类型 :参数文件、日志文件、socket文件、pid文件、MySQL表结构文件、存储引擎文件
3.1参数文件
以文本的方式进行存储,用户可进行修改。参数:一个键值对。类型:静态和动态。静态文件为只读状态,只有动态文件可以进行修改。
对变量的值修改只在这次实例中有效,下次启动时mysql实例还是会从参数文件中读取。
3.2日志文件
包括:错误日志、二进制日志、慢查询日志、查询日志,
错误日志:对mysql的启动运行关闭过程进行记录
使用时遇到问题应该首先查看该文件以便快速定位问题。或者优化数据库的信息。
慢查询日志:帮助DBA定位可能出现问题的sql语句,进行sql语句层面的优化。默认情况下不启动慢查询日志,可手动设置: log_slow_queries 的value=on.慢查询日志汇聚成slow_log 表。
查询日志:记录查询。
二进制日志:记录对数据库执行更改的所有操作(不包括 select和show)。
可进行 :恢复,复制,审计。开启这个选项会使性能下降1%,性价比高。
有一个cash_size记录缓冲区的大小,未提交的二进制日志记录到缓冲区中,当提交时再正式写入二进制日志中。
3.3 套接字文件
unix系统下本地连接mysql的配置文件。
3.4 pid文件
存储进程id。
3.5 表结构定义文件
后缀名为: frm,用来存放视图的定义
3.6 存储引擎文件
6.1 表空间文件
用户可以通过多个文件组成一个表空间,共享/独立,同时制定文件的属性。通过这样的设置,用户不用将所有的数据都放在默认表空间中。
6.2重做日志文件
非常重要!当实例或介质失败时,InnoDB会使用重做日志恢复到掉电前的状态,保证数据的完整性。
重做日志与二进制日志的差别:
重做日志的写入过程:
先写入重做日志缓冲,然后按一定的条件顺序写入日志文件。每当有事务提交时,都必须保证事务已经写入重做日志中。