MySQL delete删除数据后释放磁盘空间的操作方法

作者:幸福丶如此 时间:2024-01-18 21:00:16 

当 MySQL 数据库服务删除部分数据后;有些情况下这些数据占用的存储空间会释放掉,有些情况这些存储空间则不会释放。以下是对这种情况的简单说明:

一、删除表|清空数据表

当执行删除数据表或者清空数据表的全部数据操作时,都会释放掉相应的磁盘存储空间

drop table table_name;
truncate table table_name;

在MyISAM和InnoDB(innodb_file_per_table)存储引擎中,数据信息存在在单个文件中。删除表操作和清空数据表操作都会释放空间。

二、删除表数据

delete from table_name [where xxx];

使用delete删除的时候,MySQL并没有把数据文件删除,而是将数据文件的标识位删除,没有整理文件,因此不会彻底释放空间。被删除的数据将会被保存在一个链接清单中,当有新数据写入的时候,MySQL会利用这些已删除的空间再写入。即,删除操作会带来一些数据碎片,正是这些碎片在占用硬盘空间

三、优化表空间

方法一:

optimize table table_name ;

当表数据被大量删除后,释放占用的空间就变得很有必要了。会明显的提高查询速度。使用 optimize table。被删除的记录被保持在链接清单中,后续的 insert 操作会重新使用旧的记录位置。您可以使用 optimize table 来重新利用未使用的空间,并整理数据文件的碎片。optimize 适用于InnoDB和MyISAM存储引擎。

查看表占用硬盘空间大小的SQL语句如下:(默认用M做展示单位)

SELECT TABLE_NAME, (DATA_LENGTH+INDEX_LENGTH)/1048576 as size_Mb, TABLE_ROWS FROM information_schema.tables WHERE TABLE_SCHEMA='wow_tencent_1' AND TABLE_NAME='user'

方法二:

alter table tab_name  ENGINE = 'InnoDB';

注意:该操作执行的时候会把该表格先写入一个tmp临时表,所以磁盘剩余空间必须大于表空间,否则会执行失败。

方法三:
先将整个表的结构和数据导出来,删除整个表,再创建表,最后导入数据。生产环境不建议用这个方法

来源:https://blog.csdn.net/m0_37886429/article/details/121849372

标签:MySQL,delete,释放空间,删除数据
0
投稿

猜你喜欢

  • Python使用pandas处理CSV文件的实例讲解

    2021-01-31 18:23:37
  • overflow的另类用法

    2008-07-02 12:29:00
  • mysql 5.7.19 winx64免安装版配置教程

    2024-01-14 00:27:36
  • 浅谈MySQL8.0 异步复制的三种方式

    2024-01-29 00:26:46
  • Python+Pygame实战之泡泡游戏的实现

    2023-05-19 15:40:58
  • ASP 多关键词查询实例代码

    2011-04-11 11:14:00
  • python实现超市商品销售管理系统

    2021-01-06 22:18:14
  • python读取csv和txt数据转换成向量的实例

    2021-09-12 12:01:24
  • MySQL远程访问设置终极方法

    2024-01-19 02:31:43
  • 热门问题python爬虫的效率如何提高

    2023-06-11 03:21:40
  • javascript 的 in 操作符实例详解

    2007-10-07 12:00:00
  • Python时间和日期库的实现

    2022-02-22 14:48:28
  • 基于Python绘制一个摸鱼倒计时界面

    2022-09-02 03:03:26
  • 浅谈Go语言中的次方用法

    2024-02-17 04:57:08
  • 两大步骤教您开启MySQL 数据库远程登陆帐号的方法

    2024-01-16 10:01:35
  • python的concat等多种用法详解

    2022-08-14 23:37:18
  • 深入探究Django中的Session与Cookie

    2023-08-20 23:43:57
  • 简易vuex4核心原理及实现源码分析

    2024-05-28 16:01:15
  • 解析python高级异常和运算符重载

    2021-06-17 00:56:41
  • discuz 跨域整合的记录文件

    2023-07-23 14:17:27
  • asp之家 网络编程 m.aspxhome.com