delete是物理删除么?

来源:2-13 MySQL常用存储引擎之Innodb

烈焰卡卡

2020-03-20

这两天看mvcc,大部分网上的说法,都是说数据行有三个隐藏字段,其中有一个是标记数据是否删除的字段,用来实现事务的隔离。难道说mysql在执行delete语句的时候,只是标记了这个删除字段么?那岂不是在长期insert和delete的操作中,数据库文件会无限增大,即使数据很少执行全表扫描也会扫描一遍所有被标记delete的数据

写回答

1回答

sqlercn

2020-03-20

删除的数据的空间会被重用的,所以不会出现无限增大的情况,另外如果是做了批量删除操作,可以通过optimize table命令来回收空间。

0
7
烈焰卡卡
回复
sherlock陈
非常感谢,我再研究一下
2020-03-20
共7条回复

MySQL提升课程 全面讲解MySQL架构设计

面面俱到讲解影响MySQL性能的各个因素,让MySQL架构了然于胸。

4419 学习 · 547 问题

查看课程