mysql删除操作其实是假删除

在 InnoDB 数据库引擎中,执行 DELETE 操作并非真正删除数据,而是给数据打上删除标记。这表示表空间大小不会因删除操作而减少,即为假删除。我们通过一个例子验证这一结论。创建存储过程,插入10万条数据,查看占用空间。10万条数据占3.52M,执行 DELETE 后,表空间大小不变,证实了删除操作仅标记数据...
mysql删除操作其实是假删除
在 InnoDB 数据库引擎中,执行 DELETE 操作并非真正删除数据,而是给数据打上删除标记。这表示表空间大小不会因删除操作而减少,即为假删除。我们通过一个例子验证这一结论。创建存储过程,插入10万条数据,查看占用空间。10万条数据占3.52M,执行 DELETE 后,表空间大小不变,证实了删除操作仅标记数据,未实际移除。

标记删除的数据可复用。例如,在特定记录中删除一条,其位置被标记,下次插入符合条件记录时可复用该位置。数据页全部标记删除后,整个页可复用,插入限制少于行记录复用。插入记录与被标记位置不匹配时,数据页复用提供可能。标记删除形成数据空洞,浪费空间并影响查询效率。每次磁盘访问对应IO操作,空洞增加IO次数,降低查询速度。插入和更新操作同样产生空洞,影响表性能。

频繁增删改操作导致数据空洞,占用更多空间,降低查询效率,表现为查询速度变慢。解决方法是重建表,建立临时表,将数据重新插入,替换原表。重建过程可释放表空间,减少空洞影响。使用重建命令可以达到相同效果,推荐实践验证。InnoDB 引擎下,其他数据库引擎可能有不同表现。2024-10-16
mengvlog 阅读 88 次 更新于 2025-09-08 13:15:52 我来答关注问题0
  •  深空见闻 如何彻底删除windows中的MySQL[1.0.0]

    二、删除MySQL服务 使用sc命令删除MySQL服务:在命令行窗口中输入 sc delete MySQL,然后按回车键。这将从Windows服务列表中删除MySQL服务。三、删除MySQL安装目录和相关文件 定位MySQL安装目录:通常,MySQL会安装在指定的目录下,如 C:Program FilesMySQLMySQL Server 1.0.0 或其他自定义路径。删除安装目...

  •  深空见闻 mysql删除数据后查询很慢

    MySQL删除数据后查询变慢的原因主要是删除操作未立即物理删除记录及可能引发的索引碎片、表膨胀、锁争用和查询优化器缓存失效等问题。具体原因如下:删除操作未立即物理删除记录:MySQL的删除操作是通过修改记录的状态来标记记录为已删除,而不是立即从数据库中物理删除。这些被标记为已删除的记录在后续的查询...

  •  誉祥祥知识 win10卸载Mysql

    打开任务管理器(Ctrl+Shift+Esc),在“进程”选项卡中查找与MySQL相关的进程,右键点击它们,然后选择“结束任务”。使用第三方工具粉碎文件:如果文件或文件夹无法删除,可以尝试使用360安全卫士等第三方工具的“文件粉碎”功能来删除它们。进入安全模式删除:如果以上方法都无法删除文件或文件夹,可以尝试重...

  •  翡希信息咨询 mysqldelete语法使用详细解析

    一、基本概述 MySQL中的DELETE语句主要用于从数据库表中删除记录。 删除操作可以针对一行或多行数据,但必须明确指定要删除的表及删除条件。二、语法详解1. 基本语法结构: sql DELETE FROM 表名称 WHERE 条件; 若没有WHERE子句,将删除指定表中的所有记录,务必谨慎操作并做好数据备份。使用条...

  •  翡希信息咨询 【北亚数据恢复】输入错误命令导致MySQL数据库全表数据被删除的数据恢复案例

    明确故障类型:该案例中的故障为典型的MySQL数据库表内数据误删除,具体为使用了Delete命令但未添加where子句,导致全表数据被误删除。分析恢复难点:由于未进行数据库备份且未开启binlog,因此无法直接通过备份或日志还原数据。确定恢复方案:采用记录深度解析方案,该方案通过模拟InnoDB引擎的记录管理方式,解析...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部