美文网首页
MySQL delete操作详解

MySQL delete操作详解

作者: 特仑苏纯牛乳 | 来源:发表于2019-05-21 15:32 被阅读0次

场景:
数据量持续增长:


TimLine图片20190521150402.png

持续对数据进行归档整理但是并没有作用

image.png

数据表空间虽然有很多空闲空间但是仍然持续增长。

接下来分析一下原因:
mysql delete操作并不是进行删除操作,而只是对索引项标记为已删除,并不释放空间,但是以后的插入,命中了这个索引项,那么这个位置就可以复用。问题是在某些场景下,空闲的位置并不会再被插入数据。对一个数据页上的所有数据都被删除的情况,数据页才可能被复用。

怎样处理?
重建表:alter table A engine=InnoDB;
MySQL 5.6版本开始引入的Online DDL,对这个操作流程做了优化


image.png

上述的这些重建方法都会扫描原表数据和构建临时文件。对于很大的表来说,这个操作是很消耗IO和CPU资源的。因此,如果是线上服务,你要很小心地控制操作时间。如果想要比较安全的操作的话,我推荐你使用GitHub开源的gh-ost来做。

后续有时间我会研究一下gh-ost

看一下重建表后的资源:


未命名.png

相关文章

  • MySQL delete操作详解

    场景:数据量持续增长: 持续对数据进行归档整理但是并没有作用 数据表空间虽然有很多空闲空间但是仍然持续增长。 接下...

  • Mysql中的Delete操作

    MySQL 中的Delete 操作 1 Delete操作初识 delete操作一般用于删除数据表中的某一行,常见的...

  • 2020-10-13

    数据迁移:MySQL操作mysqldump命令详解

  • this、原型链、继承

    深入详解javascript之delete操作符深入javascript(六):instanceof 运算符重新理...

  • SpringBoot系列教程JPA之delete使用姿势详解

    原文: 190702-SpringBoot系列教程JPA之delete使用姿势详解 常见db中的四个操作curd,...

  • MySQL删除数据

    MySQL删除数据1.Deletedelete from TABLE_NAMEa.DELETE属于数据库DML操作...

  • MySQL数据操作语句

    MySQL的数据操作语句包括增删改查四种,insert,delete,update,select,其中select...

  • 5、子查询与连接

    5、子查询与连接 5.1、数据准备 mysql 中对记录操作可分为两类 写操作:INSERT、DELETE、UPD...

  • Lock wait timeout exceeded;

    情景:Mysql中用delete from 删除大量数据,然后进行其他操作的时候,提示Lock wait time...

  • MySQL安全模式

    MySQL安全模式要求不能对非主键的条件查询做update和delete操作报错: update activity...

网友评论

      本文标题:MySQL delete操作详解

      本文链接:https://www.haomeiwen.com/subject/brrjzqtx.html