MySQL的目录结构可以分为以下几个主要部分:
- bin目录:此目录下放置着一些可执行文件,例如mysql.exe、mysqld.exe、mysqlshow.exe等,它们是MySQL服务器和客户端工具的核心文件。
- data目录:此目录用于存放数据库和日志文件。它是MySQL服务器存储和操作数据的主要区域。
- include目录:这个目录下放置的是头文件,例如mysql.h、mysql_ername.h等。这些头文件主要用于MySQL的客户端工具和第三方应用程序进行函数调用和数据访问。
- lib目录:此目录用于放置一系列库文件,这些库文件包含了MySQL服务器和客户端工具所需的函数和数据资源。
- share目录:这个目录用于存放字符集、语言等信息,它为MySQL提供了多语言支持。
- my.ini文件:这是MySQL数据库中使用的配置文件。它可以被用来修改MySQL服务器的各种设置和参数。
- 针对不同规模数据库的配置文件:MySQL提供了多个针对不同规模数据库的配置文件,包括my-huge.ini(适合超大型数据库)、my-large.ini(适合大型数据库)、my-medium.ini(适合中型数据库)和my-small.ini(适合小型数据库)。这些配置文件可以方便地满足不同规模和需求的数据库设置。
- my-innodb-heavy-4G.ini:这个配置文件表示该配置文件只对InnoDB存储引擎有效,而且服务器的内存不能小于4GB。
MySQL的data目录主要包括以下文件夹:
- ibdata1:InnoDB存储引擎的共享表空间文件,包含了InnoDB存储引擎的所有数据。
- ib_logfile0和ib_logfile1:这两个文件是用于InnoDB存储引擎的日志文件,用于记录所有更改,以及重做和撤消任何更改。
- performance_schema:包含了一些系统数据库和性能模式数据库,这些数据库包含有关MySQL服务器和性能的各种信息和元数据。
- db1和db2:存储所有数据库的文件夹。如果你创建了一个新的数据库,那么会在data目录下创建一个新的与数据库同名的目录,例如db3。
MySQL的data目录下有以下几个常见文件:
- .frm文件:存储着每个表的元数据(meta)和表结构等信息。
- .ibd文件:当存储引擎是InnoDB,且设置innodb_file_per_table=ON时,mysql会在数据库目录创建ibd文件,该文件也叫作独立表空间。每创建一个新表就会创建一个对应的ibd文件,文件名为“表名.ibd”。
- .myd文件:存储着数据库的磁盘文件。
- .myi文件:存储着数据库的索引信息。
InnoDB的事务日志包括Redo log和Undo log,存放位置如下:
- Redo log存放在日志文件ib_logfile*里面,默认日志文件在mysql目录的data子目录下,ib_logfile1和ib_logfile2两个文件,大小相同,循环使用。Redo log是物理日志,记录数据页更新的内容。Redo log不是随着事务提交才写入文件的,而是从事务开始就逐步写入文件了(即使事务还没提交)。
-
Undo log则是存放在共享表空间文件里面(ibdata*)。
MySQL的ibdata1文件是InnoDB存储引擎的共享表空间文件,它通常存放在MySQL的数据目录下。在MySQL的配置文件my.ini中,有一个名为datadir的参数,它指定了MySQL数据文件的存放位置。默认情况下,ibdata1文件会在这个目录下创建,其默认文件名为ibdata1。
综上所述:
Mysql

本文详细介绍了MySQL的目录结构,包括bin中的可执行文件、data用于数据存储和日志、include的头文件、lib的库文件、share的多语言支持以及my.ini配置文件。特别关注了InnoDB存储引擎的ibdata1、ib_logfile和Redolog/Undolog日志机制。
2687

被折叠的 条评论
为什么被折叠?



