目录

小结

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