1.数据库文件的存放路径
可以在linux系统使用命令查看:find / -name mysql
也可以进入mysql使用命令查看:show variables like 'datadir'
/usr/bin和/usr/sbin
/usr/share/mysql-5.7
/etc/my.cnf
● mysql表
○ 系统自带的核心表,存储了mysql的账户和权限信息,一些存储过程,事件的定义信息,一些日志,和时区信息。
● information_schema表
○ 自带数据库,保存着mysql维护的所有其他表信息,比如视图,触发器,列,索引等。
● performance_schema表
○ 数据库子代表,保存运行信息,主要用来监控数据库的运行状态和性能。
在使用CREATE TABLE 数据库名
命令创建数据库时,文件系统是怎么执行的。
创建test数据库
mysql> create database test;
Query OK, 1 row affected (0.02 sec)
进入刚才的数据库文件目录查看:/www/server/data
再进入test目录
可以看到mysql帮我们做了两件事
我们的数据都是以记录的形式插入代表中的,每个表的信息可以分为两种。
3.1InnoDB存储引擎
数据目录
下对应的数据库同名目录下创建一个专门用于描述秒结构的文件
,表明.frm。①系统表空间:
默认情况下,InnoDB会在数据目录
下创建一个名为idbdata1,大小为12m的文件,这个文件就是对应的系统表空间
,不够用会自动增加空间。可以配置文件修改路径和名称。
②独立表空间
在MySQL5.6以及以后版本中,InnoDB不会默认把各个表的数据存储到系统表空间,而是为每一个表建立一个独立的表空间。会在该表所属数据库的同名目录下
创建一个和该表同名的文件,扩展名.idb
。
③系统表空间和独立表空间的设置
我们可以自己指定使用系统表空间还是独立表空间,由启动参数innodb_file_per_table
控制。
[server]
innodb_file_per_table = 0; # 0 系统表空间 1 独立表空间
只对新建的表起作用,如果已经创建的表要修改可以使用以下命令。
alter table 表名 tablespace [=] innodb_file_per_table;
注:在MySQL8.0中,将.opt,.frm,.idb文件全部合到.idb文件中。
3.2 MyISAM存储引擎
1.表结构
在存储表结构方面,MyISAM和InnoDB一样,也是在数据目录下对应的同名目录下创建了一个专门用于描述表结构的文件:表名.frm。
2.表中的数据和索引
在MyISAM中所有的索引全是二级索引
,该存储引擎的数据和索引是分开放的。所以在文件系统中也是使用不同的文件来存储数据文件和索引文件,同时表文件都存储在对应数据库目录下。例如test表使用MyISAM存储引擎的话,那么他所在的数据库对应的目录下会为test表创建这三个文件
test.frm 存储表结构(在MySQL8.0中是test.sdi)
test.MYD 存储数据(MYData)
test.MYI 存储索引(MYIndex)
—— 评论区 ——