不知道大家有没有想过下面这件事?
我们平时调用
DELETE
在 MySQL 中删除的数据都去哪儿了?
这还用问吗?当然是被删除了啊
那么这里又有个新的问题了,如果在 InnoDB 下,多事务并发的情况下,如果事务A删除了 id=1
的数据,同时事务B又去读取 id=1
的数据,如果这条数据真的被删除了,那 MVCC 拿啥数据返回给用户呢?
没错,这就需要了解一下 MySQL 的多版本并发的原理相关的东西,感兴趣的可以去看我之前写的这篇文章。
所以,实际情况中,调用了 DELETE
语句删除的数据并不会真正的被物理删除,这条数据其实还在那,只不过被打上了一个标记,标记已删除。
这其实跟我们日常的操作——软删除,差不多是一个意思
在 MySQL 中, UPDATE
和 DELETE
操作本质上是一样的, 都属于