MySQL删除操作其实是假删除
发布时间:2019-05-31 15:19:51 所属栏目:编程 来源:谭小谭啊
导读:在 InnoDB 中,你的 delete 操纵,并不会真的把数据删除,mysql 现实上只是给删除的数据打了个标志,标志为删除,因此你行使 delete 删除表中的数据,表文件在磁盘上所占空间不会变小,我们这里临时称之为假删除。 上面这个是结论,我们可以通过一个例子来
以是你想想,假如一个表上存在大量的数据朴陋,本来只需一个数据页就生涯的数据,因为被许多朴陋占用了空间,不得不必要增进其他的数据页来生涯数据,响应的,mysql 在查询沟通数据的时辰,就不得不增进磁盘 IO 操纵,从而影响查询速率。 着实不只仅是删除操纵会造成数据朴陋,插入和更新同样也会造成朴陋,这里就不细说了,你知道就行。 因此,一个数据表在颠末大量频仍的增编削之后,不免会发生数据朴陋,挥霍空间并影响查询服从,凡是在出产情形中会直接示意为本来很快的查询会变得越来越慢。 对付这种环境,我们凡是可以行使下面这个呼吁就能办理数据朴陋题目。
这个呼吁的道理就是重建表,就是成立一个姑且表 B,然后把表 A(存在数据朴陋的表) 中的全部数据查询出来,接着把数据所有从头插入到姑且表 B 中,最后再用姑且表 B 替代表 A 即可,这就是重建表的进程。 我们再来试验一下,看看结果。
可以看到表文件巨细已经酿成 0.02M了,声名表空间被开释了,这个 0.02M 应该是界说表布局文件的巨细了。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |