File System: 文件系统,例如数据存储的文件、操作日志类(redolog undolog binlog errorlog querylog slowlog data index)、索引文件等存储。
日志文件
常见的日志文件有错误日志、二进制日志、慢查询日志、全查询日志、redo日志、undo日志。
错误日志 对mysql的启动、运行、关闭过程进行了记录,分析问题时会用到。
二进制日志 记录了数据库变更的操作,主要用户恢复数据用。
慢查询日志 记录了运行较慢的sql语句信息,sql语句优化带来很好的帮助。
全查询日志 记录mysql的所有请求,帮助数据库审计和问题排查跟踪。
redo日志数据库都是先写日志 再写数据文件,用户恢复数据保证数据的完整性。
redo日志InnoDB特有,MySQL中有一个问题,如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程IO成本、查找成本都很高。为了解决这个问题,MySQL采用了WAL技术。WAL的全称是Write-Ahead Logging,它的关键点就是先写日志,再写磁盘。当有一条记录需要更新的时候,InnoDB引擎就会先把记录写到redo log里面,并更新内存,这个时候更新就算完成了。InnoDB引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做。InnoDB的redo log是固定大小的,比如可以配置为一组4个文件,每个文件的大小是1GB,那么就可以记录4