我正在实施数据库(大学项目)。 我在github中遇到过innodb图表
我看到我们维护一个删除链为什么要这样做,因为如果我们编写整个块(因为它更有效地写整个块),为什么不要只删除该记录。
维护删除链的用途是什么。我们可以看到他们使用链表,因此删除整个记录不需要额外费用。请解释或告诉我哪里错了?
答案 0 :(得分:0)
您不能只删除B树中的项目。您必须确保基本B树条件仍然存在,这可能涉及合并相邻节点,这将留下一个节点,您必须知道,因此您必须将其放入空闲列表以供以后重用,这样你就不会无限期地继续增长文件。
如果您正在谈论记录,您仍然必须知道已删除记录的位置,以便重复使用。没有“只是删除记录”这样的事情。
答案 1 :(得分:0)
感谢您通过用户KárolyNagy在dba.stackexcahnge.com上回答我的回答。理由是如果我们在交易中我们不能简单地删除记录。如果交易已经完成,那么我们可以删除已删除的记录。链接回答https://dba.stackexchange.com/questions/121919/why-does-mysql-make-delete-offset