MySql教程

mysql 不建议delete?

本文主要是介绍mysql 不建议delete?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.mysql delete物理删除既不能释放磁盘空间。

MySQL内部不会真正删除空间,而且做标记删除,即将delflag:N修改为delflag:Y,commit之后会会被purge进入删除链表,如果下一次insert更大的记录,delete之后的空间不会被重用,如果插入的记录小于等于delete的记录空会被重用.

2.会产生大量碎片

导致索引频繁分裂,影响SQL执行计划的稳定性,同时在碎片回收时,会耗用大量的CPU,磁盘空间,影响表上正常的DML操作。

碎片的回收

对于InnoDB的表,可以通过以下命令来回收碎片,释放空间,这个是随机读IO操作,会比较耗时,也会阻塞表上正常的DML运行,同时需要占用额外更多的磁盘空间,对于RDS来说,可能会导致磁盘空间瞬间爆满,实例瞬间被锁定,应用无法做DML操作,所以禁止在线上环境去执行。

这篇关于mysql 不建议delete?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!