MySQL数据表的一半数据删除会影响文件大小吗?
发布时间
阅读量:
阅读量
本文为《MySQL实战45讲》课程的学习笔记及部分内容摘录,原课程链接MySQL 实战 45 讲 (geekbang.org)
在此部分,我们仍聚焦于 MySQL 中使用最为广泛的 InnoDB 存储引擎进行探讨。一个 InnoDB 表主要由两部分构成,分别是表结构的定义以及存储的数据内容。在 MySQL 8.0 版本之前,表结构信息是保存在以 .frm 作为文件后缀的独立文件中。然而,从 MySQL 8.0 开始,系统已支持将表结构定义存储于系统数据表中。由于表结构所占用的存储空间非常有限,因此本文重点将围绕表数据展开分析。
随后,我们将首先解释为何单纯删除表数据无法实现对表空间的有效回收,并进一步介绍正确的空间回收方式。
1、参数 innodb_file_per_table
表数据既可以存储于共享表空间中,也可以作为独立文件存在。这一行为由参数 innodb_file_per_table 进行控制:
- 当该参数配置为 OFF 时,表示表的数据将被存入系统共享表空间,与数据字典共同存放;
- 当该参数配置为 ON 时,意味着每个 InnoDB 表
全部评论 (0)
还没有任何评论哟~
