为什么80%的码农都做不了架构师?>>>
目录
小结
MYSQL物理文件组成
MYSQL系统架构
MYSQL自带工具使用介绍
小结
本章主要从逻辑层与物理层两个方面介绍了MYSQL软件本身及数据存储的架构,同时还包括了部分重要的客户端工具的功能介绍。
通过对架构的了解,可以对MYSQL有一个更为宏观的认识。
MYSQL物理文件组成
1. 日志文件
1) 错误日志: Error Log
记录MYSQL运行过程所有较为严重的警告和错误信息,以及MYSQL每次启动和关闭的详细信息。
默认是关闭的,启动是开启 –log-error[=file_name]选项
2) 二进制日志:Binary Log & Binary Log index
记录MYSQL所有修改数据库数据的Query,以二进制形式记录在该日志文件中(常说的binlog)。还包括每一条Query所执行的时间,所消耗的资源,以及相关的事务信息,所以binlog是事务安全。
启动: --log-bin[=file_name]
3) 更新日志:Update Log
MYSQL 5.0开始不在支持更新日志
4) 查询日志:Query Log
记录所有的Query,包括所有的select,体积比较大,开启后对性能有较大影响,一般只在跟踪某些特殊的Query性能问题时才会短暂打开该功能。
开启: -log[=file_name]
5) 慢查询日志:Slow query Log
记录执行时间较长的Query,也就是常说的Slow Query
开启:--log-slow-queries[=file_name]
6) InonoDB在线Redo日志: InonoDB redo Log
记录InnoDB所做的所有物理变更和事务信息,通过Redo日志和Undo信息,InonoDB保证了在任何情况下的事务安全性。
2. 数据文件
1) .frm文件
与表相关的元数据(meta)信息都存放在该文件中,不论是什么存储引擎,每个表都有会有一个以表名命名的.frm文件。
2) .MYD文件
MyISAM存储引擎专用,存放MyISAM表数据。
3) .MYI文件
MyISAM存储引擎专用,存放MyISAM表索引相关信息。
4) .ibd文件和ibdata文件
InnoDB存储引擎专用,其中,独享表空间存储方式使用.ibd文件存放数据;共享表空间存储方式使用ibdata文件存放。
3. Replication相关文件
1) master.info文件; 2)relay log和relay log index ; 3)relay-log.info文件
4. 其他文件
1) system config file; 2)pid文件; 3)Socket文件
MYSQL系统架构
2.2.1 逻辑模块组成
图2-1 MYSQL 架构示意简图
第一层:
SQL Layer,在MYSQL数据库系统处理底层数据之前的所有工作都在这一层完成的,包括权限判断,Query解析,执行计划优化,Query Cache的处理等
第二层:
Storage Engine Layer,底层数据存取操作实现部分,由多种存储引擎共同组成。
2.2.2 各模块工作配合
图2-2 MYSQL 模块间的关系图
MYSQL 自带工具使用介绍
1) mysql
2) mysqladmin
3) mysqldump
4) mysqlimport
5) mysqlbinlog
主要功能是分析MYSQL所产生的二进制日志。
6) mysqlcheck
可以检查,修复,分析,优化MYSQL的表。
注:并不是所有的存储引擎都支持这4项功能,象InnoDB就不支持修复功能
7) myisamchk
类似mysqlchek –c/-r,可以检查和修复MyISAM存储引擎的表,但是只针对MyISAM存储引擎的索引文件有效
8) myisampack
对MyISAM表进行压缩处理,以缩减占用的存储空间,一般用于归档备份的场景下,而且压缩后的MyISAM表会变成只读,不能进行任何修改操作。
9) mysqlhotcopy