1. drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ;

  2. truncate table table_name立刻释放磁盘空间 ,不管是 Innodb和MyISAM;

  3. delete from table_name 删除表的全部数据,对于MyISAM 会立刻释放磁盘空间 ,而InnoDB 不会释放磁盘空间;

  4. delete from table_name where xx 带条件的删除, 不管是innodb还是MyISAM都不会释放磁盘空间;

  5. delete操作后使用optimize table table_name 释放磁盘空间,优化表期间会锁定表,所以要在空闲时段执行optimize table ,测试十几个G数据的表执行optimize table 大概20多分钟。

    注:delete删除数据的时候,mysql并没有把数据文件删除,而是将数据文件的标识位删除,没有整理文件,因此不会彻底释放空间。被删除的数据将会被保存在一个链接清单中,当有新数据写入的时候,mysql会利用这些已删除的空间再写入。即,删除操作会带来一些数据碎片,正是这些碎片在占用硬盘空间。
    OPTIMIZE TABLE命令优化表,该命令会重新利用未使用的空间,并整理数据文件的碎片;该命令将会整理表数据和相关的索引数据的物理存储空间,用来减少占用的磁盘空间,并提高访问表时候的IO性能;但是具体对表产生的影响是依赖于表使用的存储引擎的。该命令对视图无效。

    使用optimize table table_name出现Table does not support optimize, doing recreate + analyze instead 的解决办法:

  • innodb的数据库不支持optimize,可以用 ALTER TABLE table.name ENGINE='InnoDB';对旧表以复制的方式新建一个新表,然后删除旧表。操作前最好备份表。
  • 重新启动mysql ,在启动的时候指定–skip-new或者–safe-mode选项来支持optimize功能 再执行optimize table table_name
>/usr/local/mysql/bin/mysqladmin -uroot -p shutdown  --停止mysql
>/usr/local/mysql/bin/mysqld --skip-new &  --启动mysql
>mysql -uroot -p   --在服务器上连接mysql
mysql>use db_name;

删除数据并执行了optimize table释放了磁盘空间;optimize命令优化表 不要频繁操作,另外还发现执行optimize命令 Innodb 引擎的数据库下ibtmp1 文件由原来的几个G优化成12M了。
但如果数据每天都大量插入,删除数据后不执行optimize table insert 数据的时候会占用已经删除那部分数据的空间,数据文件所占用的磁盘空间短时间并不会增长,所以要减少数据文件占用磁盘空间,可以对表进行压缩。

mysql删除数据后释放磁盘空间相关推荐

  1. MySQL删除数据后,释放磁盘空间

    drop table table_name  立刻释放磁盘空间 , Innodb和MyISAM: truncate table table_name 立刻释放磁盘空间, Innodb和MyISAM,t ...

  2. mysql 释放空间_Mysql InnoDB删除数据后释放磁盘空间的步骤详解

    Mysql InnoDB删除数据后释放磁盘空间的方法 Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长. 如果在创建数据库的时候 ...

  3. MongoDB删除数据后释放磁盘空间

    由于mongodb的机制,通过remove删除collection中的数据后,磁盘空间并没有得到释放,想要释放空间需要删除数据库 官网上说可以使用db.repairDatabase(),但这会导致停机 ...

  4. MySQL delete删除数据后,释放磁盘空间

    当 MySQL 数据库服务删除部分数据后:有些情况下这些数据占用的存储空间会释放掉,有些情况这些存储空间则不会释放.以下是对这种情况的简单说明: 一.删除表|清空数据表 当执行删除数据表或者清空数据表 ...

  5. ElasticSearch删除数据后释放磁盘空间

    问题:公司es 几百万数据量,删到只剩30万数据量,数据磁盘并没有变少多少. 经过查询才知道删除文档并没有真正删除,仅作了删除标记,从而不能再被搜索到.要想释放磁盘的空间,要使用forcemerge命 ...

  6. MYSQL Delete删除数据后物理磁盘空间未减少解决

    起因: 数据表中保存日志信息比较多,一个表站用好几个G的空间,想清理掉三个月以前的数据,但清理后发现物理磁盘站用空间并没有减少. 原因是使用delete删除的时候,mysql并没有把数据文件删除,而是 ...

  7. mysql .myd_关于mysql 删除数据后(.MYD,MYI)物理空间未释放

    关于mysql 删除数据后物理空间未释放 OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE ...

  8. Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题

    Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题 1.起因及原因 2.解决 2.1 找到要压缩的虚拟磁盘文件 2.2 关闭 Docker Desktop 2.3 压缩虚拟磁 ...

  9. mysql删除数据后id自增不连续的解决方法

    mysql删除数据后id自增不连续的解决方法 参考文章: (1)mysql删除数据后id自增不连续的解决方法 (2)https://www.cnblogs.com/weifeng-888/p/1163 ...

最新文章

  1. swift通知栏推送_如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用
  2. 收藏 | 数据分析师最常用的10个机器学习算法!(附图解)
  3. Tomcat虚拟路径
  4. openssl passwd之openssl命令详解
  5. flowable 配置自定义表单_Flowable用代码自定义流程
  6. 走近5G云游戏标准制定——握住互联网世界看不见的手
  7. 面向接口编程,你考虑过性能吗?
  8. javascript实现jsonp跨域问题+原理
  9. html大学生活主题班会,我的大学生活主题班会策划书
  10. YOLOv4中的数据增强
  11. exec还原oracle,symantec Backup exec 恢复Recovery Oracle 数据库
  12. [转] 如何轻松愉快地理解条件随机场(CRF)?
  13. Res2Net: A New Multi-scale Backbone Architecture
  14. Ansible之管理windows主机
  15. Android模拟器的判定
  16. ubuntu中显示实时网速的方法
  17. 山东大学2019级软件工程应用与实践——基于人工智能的多肽药物分析问题(十二)
  18. 缓和曲线与原曲线任意点坐标计算程序
  19. 07笔记 离散数学——特殊性质的图——基于离散数学(第3版)_章炯民,陶增乐
  20. C#练习题答案: TO DE-RY-PO-陆琪暗号【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

热门文章

  1. 计算机二级无法交费,二级计算机啥时候交费截止
  2. “声音复刻”的黑科技,有它逃不开的灵魂拷问
  3. 1200/1500PLC字符数组与字符串转换FB块
  4. 【JS30】JavaScript 30天练习 第一天 简介
  5. 老赖上了失信被执行人黑名单,真的有效果吗?
  6. 举头望明月打计算机术语,中秋节灯谜及答案
  7. 一键爬取前程无忧51job招聘网,从此毕设数据不用愁
  8. 二叉树前序后序求中序序列
  9. Linux 零拷贝技术
  10. PTA 7-9 买复印纸