mysql文件结构
MySQL文件结构指的是MySQL存储的文件以及文件内容的结构。MySQL使用文件来保存数据,文件包括数据库文件,表文件,日志文件等,以及这些文件的结构。MySQL文件结构分为3个层次:物理层,逻辑层和应用程序层。
一、物理层
物理层是指MySQL存储数据和日志所采用的数据库文件和表文件,也可以把它们称之为存储层。MySQL采用文件系统来存储数据和日志,文件系统由多个文件组成,每个文件都有自己的格式和用途。MySQL使用固定结构文件来存储数据,这种文件包括MySQL数据库文件(.frm),数据文件(.myd和.myi),日志文件(.log,.err, .sdi),以及文件索引结构(.ibd, .isi)等。
1.1 MySQL数据库文件 (.frm)
MySQL数据库文件是每个数据库均包含的文件,它保存MySQL服务器所有可用数据库中表、视图和存储过程的定义信息。这些文件对外部用户不可见,只有MySQL服务器才会加载FRM文件,并且其他的数据库引擎也只有加载FRM文件可以创建表结构。
1.2 数据文件 (.myd和.myi)
MySQL数据文件由两个块组成,分别是.myd和.myi文件,它们被称为MYISAM表的表文件。.myd文件保存数据和索引,而.myi文件保存索引。
1.3 日志文件
MySQL日志文件包括事务日志(.log),错误日志(.err),以及数据表空闲空间信息文件(.sdi)。事务日志文件保存所有由MySQL服务器改变的信息;错误日志文件保存MySQL服务器发生的错误的记录;数据表空间信息文件保存数据表的索引结构和空闲空间信息。
1.4 索引文件
MySQL索引文件是指ISAM和MyISAM表中存储索引结构的文件,它同时也有多种类型,如.ibd,.isi等。这些文件被用于记录数据表索引信息,索引文件名称和表名相同。
二、逻辑层
MySQL逻辑层包括数据库,表,列,视图,函数,存储过程等数据对象,也就是在用户角度对数据进行建模时的结构。
2.1 数据库
数据库是指用户可以操作的最小存储单位,它起到一个集合的作用。MySQL中,用户需要先创建数据库,然后才可以创建表、视图、函数和存储过程等数据库中的对象。
2.2 表
表是MySQL中最基本的数据存储对象,它可以用来存储关联数据(也叫做行和列数据)。MySQL所有的数据都必须存放在表中,每个表都有一个唯一的名称,此外,表中的数据还需要按照一定的结构来存储。
2.3 列
列是数据表中的一个字段,它是一个标识符,用于描述表中一条记录的特定数据元素。一个表可以有多个列,每个列对应一个不同的数据类型,可以分布在多个表中。
2.4 视图
视图允许用户以虚拟表的方式将多个表中的数据字段组合起来,从而产生一张视图表,它可以屏蔽底层表和数据库引擎中存储的格式,从而让用户独立地操作数据。
2.5 函数
函数是一段程序,可以接受不定个数的参数,它可以对参数执行一些运算,数据的操作和查询,从而得到一个结果值作为函数的输出。MySQL提供了一系列内置函数,用于实现表达式的计算,以及数据的处理和查询。
2.6 存储过程
存储过程是由一组MySQL指令组成的一段程序,以及一组变量,它可以在某一次会话中被多次调用。
MySQL存储过程不仅可以提高数据库访问性能,还能够减少用户输入的复杂性。
三、应用程序层
应用程序层是指应用程序如何访问MySQL,包括如何使用客户端应用程序以及如何使用SQL语句。MySQL使用抽象的应用程序接口(API)来让客户端访问数据库,API接口由MySQL提供,在服务器端由MySQL实现SQL语句的翻译和查询,在客户端由应用程序实现服务器端返回的数据的处理。
综上所述,MySQL文件结构具有三层次:物理层,逻辑层和应用程序层。物理层中包括MySQL数据库文件(.frm),数据文件(.myd和.myi),日