我了解到 InnoDB 中的所有二级 B 树都存储表单对(搜索键,TID),其中 TID 是记录的主键。我有以下问题:
(1)在InnoDB中,二级B树是否通过mark-deletion实现删除?即叶子中的条目被标记为删除而不是物理删除。
(2)如果是这样,当插入一个新的条目,其搜索键与一些现有的标记删除条目相同时,InnoDB如何确定标记删除条目是否已提交?例如,假设 B 树是唯一索引。假设第一个事务标记删除搜索键hello
,第二个事务尝试插入搜索键hello
。如果第一个事务尚未提交,则插入应该失败;否则,插入应该是成功的。我想知道 InnoDB 如何决定是否允许插入hello
。