mysql - 为什么mysql make delete offset?

标签 mysql innodb

我正在实现数据库(大学项目)。 我在 github 上看到了 innodb 图

enter image description here

我看到我们维护了一个删除链,为什么我们要这样做,因为如果我们写整个 block (因为如果写整个 block 更有效)为什么不简单地删除该记录。

维护删除链有什么用。我们可以看到他们使用链表,所以删除整条记录不需要额外的成本。请解释或告诉我哪里错了?

最佳答案

您不能只从 B 树中删除一个项目。你必须确保基本的 B-tree 条件仍然成立,这可能涉及合并相邻节点,这将留下一个节点,你必须知道这一点,所以你必须将它放入一个空闲列表以供以后重用,这样您就不会无限期地增加文件。

如果你在谈论记录,你仍然必须知道删除的记录在哪里,以便重用。没有“只删除[ing]记录”这样的事情。

关于mysql - 为什么mysql make delete offset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33886774/

相关文章:

php - PDO DATE_SUB() 过滤数据

MySQL 服务器 - Sillenly 安装和配置

mysql - 根据之前的值自动递增

php - MySQL 表 - 如何在十亿行表上快速插入?

MySQL 5.6 InnoDB 全文搜索

mysql - CakePHP 数据库 - MyISAM、InnoDB 或 Postgresql

mysql - 查询 JOIN 和 Count ON Postgresql

MySQL - 在字符串中搜索括号和空格

mysql - 导出和导入外键

MySQL MyISAM关系图