mysql数据库物理结构_MySQL数据库物理文件架构组成各种工具详解

MySQL物理文件组成——日志文件——错误日志(Error Log)

错误日志记录了MyQL服务器运行过程中所有较为严重的警告和错误信息,以及每次启动和关闭的详细信息。

错误日志记录功能默认是关闭的,错误信息默认被输出到标准错误输出(stderr);

可以在启动时加上--log-error参数,开启系统记录错误日志的功能。

错误日志默认存放在数据目录下,以hostname.err命名。

--log-error[=file_name]可以修改存放目录和文件名。

MySQL的FLUSH LOGS命令会将错误日志做备份并重新开始记录,MySQL会备份旧日志文件并生成新的日志文件。备份文件名以“.old”结尾。

MySQL物理文件组成——日志文件——二进制日志:Binary Log & Binary Log Index

--log-bin[=file_name]开启二进制日志记录功能,MySQL会将所有修改数据库数据的Query以二进制形式记录到日志文件中,还包括每一条Query所执行的时间,所消耗的资源,以及相关的事务信息,binlog是事务安全的。

binlog记录功能默认是关闭的:

--log-bin:在数据目录下生成为mysql-bin.******(*代表0~9之间的某一个数字,表示该日志的序号)文件;

--log-bin[=file_name]:

--max_binlog_size:设置binlog的最大存储上限,当日志达到该上限时,MySQL会重新创建一个日志开始继续记录。

产生超出该设置的binlog的原因:在即将达到上限时,产生一个较大的事务,为了保证事务安全,MySQL不会将同一个事务分开记录到两个binlog中。

--binlog-do-db=db_name:须要对某个(db_name)数据库记录binlog,MySQL会忽略针对其他数据库,而仅仅记录指定数据库执行的Query。

--binlog-ignore-db=db_name:与--binlog-do-db=db_name完全相反,它显式指定忽略某个(db_name)数据库的binlog记录,在指定了这个参数之后,MySQL会记录指定数据库以外所有数据库的binlog。

mysql-bin.index文件(binary log index)的功能是记录所有Binary Log的绝对路径,保证MySQL各种线程能够顺利地根据它找到所有需要的Binary Log文件。

--binlog-ignore-db=db_name与--binlog-do-db=db_name注意事项

参数中的db_name不是指Query语句更新的数据所在的数据库,而是执行Query时所处的数据库。

不论更新哪个数据库的数据,MySQL仅仅比较当前连接所处的数据库(通过use db_name切换后所在的数据库)与参数设置的数据库名,而不会分析Query语句更新数据所在的数据库。

MySQL物理文件组成——日志文件——更新日志(update log)

更新日志在较老版本上使用的,类似binlog,不过不是以二进制格式来记录,而是以简单的文本格式记录内容。

自从增加了binlog功能之后,就很少使用更新日志了。

从版本5.0开始,MySQL已经不再支持更新日志。

MySQL物理文件组成——日志文件——查询日志(query log)

记录所有的Query。

加上--log[=fina_name]参数开启该功能。

记录了所有的Query(包括所有的select),体积较大,开启后对性能有较大影响,慎用该功能。

只在跟踪某些特殊的Query性能问题时才会短暂打开该功能。

默认的查询日志文件名为hostname.log。

MySQL物理文件组成——日志文件——慢查询日志(slow query log)

记录执行时间较长的Query(Slow Query)

--log-slow-queries[=file_name]开启该功能,默认文件名为hostname-slow.log,默认目录是数据目录。

慢查询日志采用简单的文本格式,可以通过文本编辑器查看内容。

慢查询日志还记录了语句执行的时刻,执行所消耗的时间,执行用户,连接主机等信息。

MySQL提供了专门用来分析慢查询日志的工具mysqlslowdump。

MySQL物理文件组成——日志文件—— InnoDB的在线REDO日志(InnoDB REDO Log)

InnoDB是事务安全的存储引擎,其事务安全性主要是通过在线REDO日志和记录在表空间的UNDO信息来保证的。

REDO日志中记录了InnoDB所做的所有物理变更和事务信息,通过REDO日志和UNDO信息,InnoDB保证了在任何情况下的事务安全性。

InnoDB的REDO日志默认存放在数据目录下,

innodb_log_group_home_dir可以更改日志的存放位置,

innodb_log_files_in_group可以设置日志的数量

MySQL物理文件组成——日志文件——数据文件

每一个数据库都会在定义好(或默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中的各种表数据文件。

不同的存储引擎有各自不同的数据文件,存放位置也有区别。

多数存储引擎的数据文件都存放在和MyISAM数据文件位置相同的目录下,但是每个数据文件的扩展名却各不一样:MyISAM用“.MYD”作为扩展名,InnoDB用“.ibd”,Archive用“.arc”,CSV用“.CSV”。

MySQL物理文件组成——数据文件——“.frm”文件

“.frm”文件保存表相关的元数据(meta)信息,包括表结构的定义信息等。

不论是什么存储引擎,每一个表都会有一个以表名命名的“.frm”文件。

所有的“.frm”文件都存放在所属数据库的文件夹下面。

MySQL物理文件组成——数据文件——“.MYD”文件(MyISAM存储引擎)

“.MYD”文件存放MyISAM表的数据。

每一个MyISAM表都会有一个“.MYD”文件与之对应,它存放于所属数据库的文件夹下,和“.frm”文件在一起。

MySQL物理文件组成——数据文件——“.MYI”文件(MyISAM存储引擎)

“.MYI”文件存放MyISAM表的索引信息。

对于MyISAM存储来说,可以被缓存(cache)的内容主要就是来源于“.MYI”文件中。

每一个MyISAM表对应一个“.MYI”文件,其存放的位置和“.frm”及“.MYD”一样。

MySQL物理文件组成——数据文件——“.ibd”文件和ibdata文件

存放InnoDB的数据(包括索引)。

InnoDB可以通过配置决定是使用共享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值