问题:请讲下mysql执行了delete操作,数据真的被删除了吗

分析:这个问题考察对mysql底层存储的理解。

回答要点:

主要从以下几点去考虑,

1、肯定没有真正删除?

2、为什么这样设计?

 

mysql执行delete操作后,存储在硬盘上的数据没有被删除,只不过在记录行上做了逻辑删除,即通过删除标识位实现。

因为移除它们之后,很多其他的记录需要在磁盘上重新排列,这样会消耗大量的性能,比如如果是一张大表,存在索引,删除了其中一行,那么整个索引结构就会发生变化,随之而来的是要改变索引结构,必将带来磁盘IO,大家都知道磁盘IO是很浪费性能的。所有被删除的记录都会组成一个垃圾链表,这个链表中记录占用的空间叫做可重用空间,之后有新记录插入的时候可能把已删除记录占用的空间覆盖掉。

 

java面试一日一题:mysql执行delete数据真的被删除了吗

相关文章:

  • 2021-08-26
  • 2021-07-30
  • 2021-06-25
  • 2021-07-31
  • 2022-01-24
  • 2021-09-16
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-20
  • 2021-12-19
  • 2022-01-17
  • 2022-01-17
  • 2022-12-23
  • 2021-10-07
  • 2022-02-12
相关资源
相似解决方案