本发明涉及数据库,特别是涉及一种数据库索引页面的回收方法及相关产品。
背景技术:
1、基于磁盘的关系数据库大部分都支持btree索引,因为btree索引在并发性能、点查询、范围查询、唯一性支持上能力全面。在部分新增删除较多的场景下,如果索引项大部分是按顺序增加,例如一些时序数据、编号数据,索引会出现新索引项无法使用的空页面,回收重用这些空页面是优化索引空间使用的重要技术。
2、btree索引为了更好的并发能力,在扫描时不会做大范围的封锁。页面即使被从树中移除,也无法确定是否有刚放开父亲、兄弟节点页面,链接过来的扫描,难以确定是否可以回收重用。
技术实现思路
1、鉴于上述问题,本发明提出了一种克服上述问题或者至少部分地解决上述问题的数据库索引页面的回收方法及相关产品。
2、本发明的一个目的是安全回收数据库中的空页面。
3、本发明的一个进一步的目的是提升数据库资源的利用率。
4、特别地,本发明提供了一种数据库索引页面的回收方法,其包括:
5、获取回收空页面的回收指令,空页面为经过数据库操作之后导致内部数据记录为空的索引页面;
6、扫描数据库中从索引树上移除的空页面;
7、根据回收指令确定最小可见事务号;
8、根据最小可见事务号与移除的空页面中记录的回收事务号判断空页面是否允许回收;
9、若是,则回收空页面。
10、可选地,扫描数据库中从索引树上移除的空页面的步骤之前还包括:
11、获取数据库的索引树中待移除的空页面;
12、移除空页面并记录空页面对应的回收事务号,回收事务号为移除空页面时数据库要分配的下一个事务号。
13、可选地,获取数据库的索引树中待移除的空页面的步骤包括:
14、扫描数据库中的索引页面;
15、若索引页面中的数据记录被删除为空,确定索引页面为待移除的空页面。
16、可选地,根据回收指令确定最小可见事务号的步骤包括:
17、获取数据库在接收到回收指令时刻的快照;
18、根据快照确定最小可见事务号。
19、可选地,根据快照确定最小可见事务号的步骤包括:
20、获取快照记录的目标事务号,目标事务号为快照生成时数据库将要分配的下一个事务号;
21、获取数据库中处于执行状态的事务对应的执行事务号,并将小于目标事务号的执行事务号作为可见事务号;
22、在可见事务号中选择最小的执行事务号作为最小可见事务号。
23、可选地,根据最小可见事务号与移除的空页面中记录的回收事务号判断空页面是否允许回收的步骤包括:
24、判断最小可见事务号是否大于等于回收事务号;
25、若是,则判定空页面允许回收。
26、可选地,事务号包括:提交序列号,提交序列号为单调递增的序列号并与数据库中的事务一一对应。
27、根据本发明的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一种的数据库索引页面的回收方法的步骤。
28、根据本发明的又一个方面,还提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上述任一种的数据库索引页面的回收方法的步骤。
29、根据本发明的再一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库索引页面的回收方法的步骤。
30、本发明的数据库索引页面的回收方法,获取回收空页面的回收指令,空页面为经过数据库操作之后导致内部数据记录为空的索引页面;扫描数据库中从索引树上移除的空页面;根据回收指令确定最小可见事务号;根据最小可见事务号与移除的空页面中记录的回收事务号判断空页面是否允许回收;若是,则回收空页面。通过此方法能够通过最小可见事务号与移除的空页面中记录的回收事务号进行比对从而确定移除的空页面是否能够安全回收,从而在提升数据库资源的利用率以及索引的效率的同时,不会过多地增加数据库的开销。
31、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
1.一种数据库索引页面的回收方法,包括:
2.根据权利要求1所述的数据库索引页面的回收方法,其中,
3.根据权利要求2所述的数据库索引页面的回收方法,其中,
4.根据权利要求1所述的数据库索引页面的回收方法,其中,
5.根据权利要求4所述的数据库索引页面的回收方法,其中,
6.根据权利要求1所述的数据库索引页面的回收方法,其中,
7.根据权利要求1所述的数据库索引页面的回收方法,其中,
8.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的数据库索引页面的回收方法的步骤。
9.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的数据库索引页面的回收方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至7任一项所述的数据库索引页面的回收方法的步骤。
