【MySQL学习笔记(八)】之 数据目录结构介绍

本文章由公号【开发小鸽】发布!欢迎关注!!!


老规矩–妹妹镇楼:

一. MySQL的数据目录

(一) 数据目录

       MySQL服务器程序在启动时,回到文件系统的某个目录下加载一些数据,之后在运行过程中产生的数据也会存储到这个目录下的某些文件中,这个目录称为数据目录。注意,要与mysql的安装目录区分开。要确定该数据目录路径,通过系统变量datadir查看即可。

SHOW VARIABLES LIKE ‘datadir’;

(二) 数据目录的结构

       MySQL会保存哪些数据呢?创建的数据库,表,视图和触发器等用户数据,还有额外的一些数据。

1. 数据库

       每当创建一个数据库时,数据目录都会创建一个子目录,与数据库同名,同时在该子目录下创建一个名为db.opt的文件,包含了该数据库的一些属性,如字符集与比较规则。MySQL中的数据库除了information_schema这个系统数据库没有对应的子目录外,其他的都有。


2. 表

       数据以记录的形式插入到表中,每个表的信息分为表结构的定义和表中的数据。InnoDB和MyISAM都在数据库子目录下创建了一个专用于描述表结构的文件:表名.frm,以二进制格式存储。

(1) InnoDB中的表

       对于表中的数据,不同的存储引擎是不太一样的。对于InnoDB,首先以页为单位管理数据,并使用表空间来管理这些页。表空间是抽象的概念,对应文件系统上一个或多个真实文件,每个表空间被划分为多个页,表空间有多种类型。系统表空间对应文件系统上一个或多个实际的文件,默认情况下,InnoDB会在数据目录下创建一个名为ibdata1,大小为12MB的系统表空间文件,该文件是自扩展的,文件大小可通过系统变量修改。一个MySQL服务器中,系统表空间只有一份。

       MySQL5.6.6之后,InnoDB不再默认将各个表的数据存储到系统表空间中,而是为每一个表建立一个独立表空间,该文件名为:表名.ibd。还有一些其他类型的表空间,如通用表空间,undo表空间,临时表空间等。

(2) MyISAM中的表

       由于MyISAM中的索引都是二级索引,该存储引擎的数据和索引是分开存放的,所以在文件系统中也是使用不同的文件来存储数据文件和索引文件,表的数据和索引也是存放到对应的数据库子目录下,表名.MYD表示表的数据文件,表名.MYI表示表的索引文件。

3. 其他文件

       服务器进程文件,日志文件,证书与密钥文件。

(三) MySQL系统数据库介绍

1. mysql

       存储mysql的用户账户和权限信息,日志,帮助信息等。


2. information_schema

       mysql服务器维护的所有其他数据库的信息,如哪些表,哪些视图,哪些触发器,哪些列,哪些索引,这些信息不是真实的用户数据,只是描述性信息,称为元数据。

3. performance_schema

       保存mysql服务器运行过程中的状态信息,是对mysql运行状态的性能监控。

4. sys

       通过视图的形式将information_schema 和 performance_schema结合起来,让开发者更方便了解mysql服务器的性能信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值