什么情况下发生索引块分裂

参考:https://wenku.baidu.com/view/24de91f3ba0d4a7302763a33.html


什么情况下发生索引块分裂
  按照分裂的对象不同,分为叶子节点分裂和枝节点分裂,而枝节点分裂中还有一个特殊的分裂:根节点分裂。
  按照分裂时,2个数据块上分布的数据比例,分为5-5分裂和9-1分裂:
  5-5分裂:新旧2个数据块上的数据基本相等;
  9-1分裂:大部分数据还在原有数据块上,只有少量数据被转移到新的数据块上。


当发生9-1分裂时,通常是索引的键值是递增的,且表上的主要操作为插入操作、事务并发量比较低的情况。保证新的数据块上有最大的空闲空间插入新值,因而减少了分裂的发生;

发生5-5分裂时,通常表上的并发事务较多,且插入、删除的数据比较分散,因此需要保持分裂的新、老数据块上有相当的空闲空间以容纳新事务、新数据。


当一个事务中递归事务请求分裂一个数据块时,该数据块正在被另外一个事务的递归事务分裂,就发生“enq: TX - allocate ITL entry”等待。我们前面提过,无论在叶子节点数据块上还是在枝节点数据块上,有且只有一个ITL slot(枝节点上的唯一ITL slot,叶子节点上的第一条ITL slot)是用于递归事务的,当2个递归事务同时要请求该ITL slot,后发出请求的事务就需要等待:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值