MYSQL数据库的数据存储文件

MySQL数据库会在data目录下面简历一个以数据库为名的文件夹,用来存储数据库中的表文件数据。不同的数据库引擎,每个表的扩展名也不一样 ,例如: MyISAM用“.MYD”作为扩展名,Innodb用“.ibd”,Archive 用“.arc”,CSV 用“.csv

.frm 文件

无论是那种存储引擎,创建表之后就一定会生成一个以表明命名的’.frm’文件。frm文件主要存放与表相关的数据信息,主要包括表结构的定义信 息。当数据库崩溃时,用户可以通过frm文件来恢复数据表结构。

.myd 文件

“.myd”文件是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAM表都会有一个“.myd”文件与之对应,同样存放于所属数据库的文件夹下, 和“.frm”文件在一起。

.myi 文件

“.myi”文件也是专属于MyISAM存储引擎的,主要存放MyISAM表的索引相关信息。对于MyISAM存储来说,可以被cache 的内容主要就是来源 于“.myi”文件中。 每一个MyISAM表对应一个“.myi”文件,存放于位置和“.frm”以及“.myd”一样。

.ibd 文件与 .ibdata 文件

这两种文件都是存放Innodb数据的文件,之所以有两种文件来存放Innodb的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决 定是使用共享 表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储方式使用“.ibd”文件来存放数据,且每个表一个“.ibd”文件 ,文件存放在和MyISAM数据相 同的位置。如果选用共享存储表空间来存放数据,则会使用ibdata文件来存放,所有表共同使用一个(或者多个, 可自行配置)ibdata文件。

ibdata文件可以通过 innodb_data_home_dir(数据存放目录)和 innodb_data_file_path (配置每个文件的名称) 两个参数配置组成。

innidb_data_file_path 中可以一次配置多个 ibdata 文件 #innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend 配置方式 。

共享表空间以及独占表空间都是针对数据的储存方式而言的。

共享表空间:某一个数据库的所有表数据,索引文件全部放在一个文件中。

独占表空间:每一个表都将会生成以独立的文件方式来进行储存,每一个表都有一个 .frm 表描述文件,还有一个 .idb 文件。其中这个文件包括了单独一个表的数据内容以及索引内容。

两者对比

(1)共享表空间:

优点:可以放表空间分成多个文件存放到各个磁盘上。数据和文件放在一起方便管理。

缺点:所有的数据和索引存放到一个文件中,多个表及索引在表空间中混合储存,这样对于一个表做了大量删除操作后表空间中将会有大量的空隙,特别是对于统计分析,日值系统这类应用最不适合用共享表空间。

(2)独占表空间:

优点

  1. 每个表都有自己独立的表空间。
  2. 每个表的数据和索引都会存在自己的表空间中。
  3. 可以实现单表在不同的数据库中移动。
  4. 空间可以回收。

a) Drop table 操作自动回收表空间,如果对于统计分析或是日值表,删除大量数据后可以通过:altertable TableName engine = innodb;回收不用的空间。

b) 对于使用独占表空间的表,不管怎么删除,表空间的碎片不会太严重的影响性能,而且还有机会处理。

缺点:单表增加过大,如超100G。相比较之下,使用独占表空间的效率以及性能会差一点

共享表空间和独占表空间之间的转换

show variables like “innodb_file_per_table”; ( 查看方式 )
ON代表独占表空间管理,OFF代表共享表空间管理;

修改数据库的表空间管理方式 修改 innodb_file_per_table 的参数值即可,但是修改不能影响之前已经使用过的共享表空间和独占表空间;

innodb_file_per_table = 1 为使用独占表空间

innodb_file_per_table = 0 为使用共享表空间

innodb_file_per_table在mysql的配置文件里面修改

配置文件请看这个链接:https://blog.csdn.net/qq_39408664/article/details/118578633

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值