首页 数据库 mysql教程 MySQL架构组成之物理文件组成_MySQL

MySQL架构组成之物理文件组成_MySQL

Jun 01, 2016 pm 01:14 PM
详细信息

一、日志文件
1、错误日志:Error Log
内容:MyQL Server 运行过程中所有较为严重的警告和错误信息,以及MySQL Server 每次启动和关闭的详细信息。
路径:默认存放位置在数据目录下
名称:默认文件名以hostname.err 命名
修改:“--log-error[=file_name]”,修改其存放目录和文件名
扩展:FLUSH LOGS 命令来告诉MySQL 备份旧日志文件并生成新的日志文件。备份文件名以“.old”结尾。
2、二进制日志:Binary Log & Binary Log Index
内容:MySQL 会将所有修改数据库数据的query(query 语句、执行的时间、所消耗的资源,以及相关的事务信息) 以二进制形式记录到日志文件中。
路径:默认存放位置在数据目录下
名称:mysql-bin.******(*代表0~9 之间的某一个数字,来表示该日志的序号)
修改:“--log-bin[=file_name]”,修改其存放目录和文件名
扩展:“--max_binlog_size”设置binlog 的最大存储上限
“--binlog-do-db=db_name”对某个(db_name)数据库记录binlog
“--binlog-ignore-db=db_name”忽略某个(db_name)数据库的binlog 记录
注意:db_name 不是指query 语句更新的数据所在的数据库,而是当前连接所处的数据库
mysql-bin.index 文件(binary log index)的功能是记录所有Binary Log 的绝对路径,保证MySQL 各种线程能够顺利的根据它找到所有需要的Binary Log 文件。
3、更新日志:update log
从版本5.0 开始,MySQL 已经不再支持更新日志了。
4、查询日志:query log
内容:记录MySQL 中所有的query(包括所有的select,体积比较大,开启后影响性能,慎用!)
路径:默认存放位置在数据目录下
名称:默认文件名为hostname.log
修改:“--log[=fina_name]”,修改其存放目录和文件名
扩展:一般只用于跟踪某些特殊的sql 性能问题才会短暂打开该功能。
5、慢查询日志:slow query log
内容:慢查询日志中记录的是执行时间较长的query
路径:默认存放位置在数据目录下
名称:默认文件名为hostname-slow.log
修改:“--log-slow-queries[=file_name]”,修改其存放目录和文件名
扩展:慢查询日志采用的是简单的文本格式,可以通过各种文本编辑器查看其中的内容。其中记录了语句执行的时刻,执行所消耗的时间,执行用户,连接主机等相关信息。
MySQL 还提供了专门用来分析满查询日志的工具程序mysqlslowdump,用来帮助数据库管理人员解决可能存在的性能问题。
6、Innodb 的在线redo 日志:innodb redo log
内容:redo 日志中记录了Innodb 所做的所有物理变更和事务信息,通过redo 日志和undo 信息,Innodb 保证了在任何情况下的事务安全性
路径:默认存放位置在数据目录下
名称:ib_logfile******(*代表0~9 之间的某一个数字,来表示该日志的序号)
修改:通过innodb_log_group_home_dir 来更改设置日志的存放位置,通过innodb_log_files_in_group 设置日志的数量。
扩展:暂不提供

二、数据文件
1、“.frm”文件
与表相关的元数据(meta)信息都存放在“.frm”文件中,包括表结构的定义信息等(与表一对一存在)。
2、“.MYD”文件
“.MYD”文件是MyISAM 存储引擎专用,存放MyISAM 表的数据(与表一对一存在)。
3、“.MYI”文件
“.MYI”文件也是专属于MyISAM 存储引擎的,主要存放MyISAM 表的索引相关信息(与表一对一存在)。
4、“.ibd”文件和ibdata 文件
这两种文件都是存放Innodb 数据的文件,之所以有两种文件来存放Innodb 的数据(包括索引),是因为Innodb 的数据存储方式能够通过配置来决定是使用共享表(ibdata文件)空间存放存储数据,还是独享表(.ibd文件,与表一对一存在)空间存放存储数据。

三、Replication相关文件
1、master.info 文件
master.info 文件存在于Slave 端的数据目录下,里面存放了该Slave 的Master 端的相关信息,包括Master 的主机地址,连接用户,连接密码,连接端口,当前日志位置,已经读取到的日志位置等信息。
2、relay log 和relay log index
mysql-relay-bin.xxxxxn 文件用于存放Slave 端的I/O 线程从Master 端所读取到的Binary Log 信息,然后由Slave 端的SQL 线程从该relay log 中读取并解析相应的日志信息,转化成Master 所执行的SQL 语句,然后在Slave 端应用。
mysql-relay-bin.index 文件的功能类似于mysql-bin.index ,同样是记录日志的存放位置的绝对路径,只不过他所记录的不是Binary Log,而是Relay Log。
3、relay-log.info 文件
类似于master.info,它存放通过Slave 的I/O 线程写入到本地的relay log 的相关信息。供Slave 端的SQL 线程以及某些管理操作随时能够获取当前复制的相关信息。

四、其他文件
1、system config file
MySQL 的系统配置文件一般都是“my.cnf”,Unix/Linux 下默认存放在"/etc"目录下,Windows 环境一般存放在“c:/windows”目录下面。
2、pid file
pid file 是mysqld 应用程序在Unix/Linux 环境下的一个进程文件,和许多其他Unix/Linux 服务端程序一样,存放着自己的进程id。
3、socket file
socket 文件也是在Unix/Linux 环境下才有的,用户在Unix/Linux 环境下客户端连接可以不通过TCP/IP 网络而直接使用Unix Socket 来连接MySQL。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何使用Alter Table语句在MySQL中更改表? 如何使用Alter Table语句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

如何为MySQL连接配置SSL/TLS加密? 如何为MySQL连接配置SSL/TLS加密? Mar 18, 2025 pm 12:01 PM

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

您如何处理MySQL中的大型数据集? 您如何处理MySQL中的大型数据集? Mar 21, 2025 pm 12:15 PM

文章讨论了处理MySQL中大型数据集的策略,包括分区,碎片,索引和查询优化。

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么? 哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么? Mar 21, 2025 pm 06:28 PM

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

如何使用Drop Table语句将表放入MySQL中? 如何使用Drop Table语句将表放入MySQL中? Mar 19, 2025 pm 03:52 PM

本文讨论了使用Drop Table语句在MySQL中放下表,并强调了预防措施和风险。它强调,没有备份,该动作是不可逆转的,详细介绍了恢复方法和潜在的生产环境危害。

如何在JSON列上创建索引? 如何在JSON列上创建索引? Mar 21, 2025 pm 12:13 PM

本文讨论了在PostgreSQL,MySQL和MongoDB等各个数据库中的JSON列上创建索引,以增强查询性能。它解释了索引特定的JSON路径的语法和好处,并列出了支持的数据库系统。

您如何用外国钥匙代表关系? 您如何用外国钥匙代表关系? Mar 19, 2025 pm 03:48 PM

文章讨论了使用外国密钥来代表数据库中的关系,重点是最佳实践,数据完整性和避免的常见陷阱。

如何保护MySQL免受常见漏洞(SQL注入,蛮力攻击)? 如何保护MySQL免受常见漏洞(SQL注入,蛮力攻击)? Mar 18, 2025 pm 12:00 PM

文章讨论了使用准备好的语句,输入验证和强密码策略确保针对SQL注入和蛮力攻击的MySQL。(159个字符)

See all articles