间隔分区表上全局索引的异步清理方法技术

技术编号:39500340 阅读:12 留言:0更新日期:2023-11-24 11:30
本发明专利技术提供了一种间隔分区表上全局索引的异步清理方法

【技术实现步骤摘要】
间隔分区表上全局索引的异步清理方法、存储介质和设备


[0001]本专利技术涉及数据库的
,特别是涉及一种间隔分区表上全局索引的异步清理方法

一种机器可读存储介质和一种计算机设备


技术介绍

[0002]在关系型数据库中,可以通过分区技术将一个对象,如数据库表,划分为多个子表,每个子表称为一个分区

分区类型包括范围分区

哈希分区和列表分区,其中最常见的是范围分区,范围分区是指每个单独的分区对应于表的一个或多个列的特定值范围

例如,一个表中某一列记录的是一年的日期值,则可以将该表划分为
12
个分区,每个分区对应今年的一个月,则特定月份的所有行将被插入到与该月份对应的分区中

当一个特定的查询选择了月份等于五月的所有行时,那么查询过程中只会扫描与五月关联的分区

[0003]间隔分区是范围分区的一个拓展,当插入的数据超过了现有的所有分区时,数据库会按照指定的间隔自动创建分区

示例如下,
create table employee(
ꢀꢀ
id int,
ꢀꢀ
name varchar(64),
ꢀꢀ
salary int,
ꢀꢀ
...... ) partition by range (salary) interval (500)(
ꢀꢀꢀꢀ
partition p1 values less than(3000),
ꢀꢀꢀꢀ
partition p2 values less than(3500));
根据以上程序所得到的分区包括分区
p1
和分区
p2
,每个分区对应的薪资变化在
500
以内,其中分区
p1
中存储的是薪资在
2500

3000
的员工,分区
p2
中存储的是新增在
3000

3500
的员工

当在录入一名新员工且其薪资为
3600
时,该雇员表的插入操作会触发自动扩展出一个新分区
p3
,其对应的分区范围为
[3500, 4000


[0004]分区表上可以创建两种索引:本地索引和全局索引,其中本地索引是一种分区索引且每个索引分区只包含一个表分区的数据,全局索引可以是分区或者非分区的,对于非分区全局索引,各个表分区数据对应的索引项存放在一起,对于分区全局索引,其分区键可以与表分区不一致,即一个索引分区中可以包含不同表分区的数据

[0005]当间隔分区由于数据插入或者更新触发了分区自动扩展,但最终事务回滚时,在全局索引中会出现对应表分区不存在的孤立索引条目

当此类索引条目大量存在时,在事务回滚阶段清理孤立索引条目会花费较长时间,而在这个过程中其他并发查询将无法使用该全局索引


技术实现思路

[0006]鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的间隔分区表上全局索引的异步清理方法

存储介质和设备,能够解决数据库的事务回滚效率低的问题,达到降低事务回滚与其他并发事务阻塞的目的

[0007]具体地,本专利技术提供了一种间隔分区表上全局索引的异步清理方法,包括:在执行事务回滚时,不删除全局索引中的索引条目;在对所述全局索引中的索引条目进行扫描的过程中,根据预设规则识别出所述全局索引中的孤立索引条目;根据预设清理规则,对所述孤立索引条目进行定期清理

[0008]根据本专利技术的一个实施例,在所述的根据预设规则识别出所述全局索引中的孤立索引条目后,还包括:对所述孤立索引条目进行标记;所述的根据预设清理规则,对所述孤立索引条目进行定期清理,包括:根据所述标记识别出所述全局索引中的孤立索引条目并进行清理

[0009]根据本专利技术的一个实施例,所述的根据预设规则识别出所述全局索引中的孤立索引条目,包括:获取所述全局索引中没有被标记的索引项;获取所述索引项的分区标识符,并根据所述分区标识符查找对应的表分区;若查找失败,则标记所述索引项为孤立索引条目

[0010]根据本专利技术的一个实施例,所述的根据预设清理规则,对所述孤立索引条目进行定期清理,包括:当数据库处于空闲状态时,对所述孤立索引条目进行定期清理

[0011]根据本专利技术的一个实施例,所述对所述孤立索引条目进行定期清理,包括:通过负责清理工作的进程,根据系统配置时间对所述孤立索引条目进行定期清理

[0012]根据本专利技术的一个实施例,所述的根据系统配置时间对所述孤立索引条目进行定期清理,包括:依次对所述全局索引中各数据页面中的孤立索引条目进行清理

[0013]根据本专利技术的一个实施例,所述的根据预设清理规则,对所述孤立索引条目进行定期清理,包括:当分区表的数据进行更新和
/
或插入操作时,对所述孤立索引条目进行清理

[0014]根据本专利技术的一个实施例,所述的对所述孤立索引条目进行清理,包括:获取用于存放新增的索引列的数据页面;判断所述数据页面的空间是否足够存储新增的索引项;若否,则将所述数据页面中的孤立索引条目删除

[0015]另一方面,本专利技术还提供了一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时,实现根据上述任一项实施例所述的间隔分区表上全局索引的异步清理方法

[0016]又一方面,本专利技术还提供了一种计算机设备,包括存储器

处理器及存储在所述存
等步骤的编号不代表步骤执行的先后顺序,只代表对应的方法中有相应的步骤内容

在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例

而且,描述的具体特征

结构

材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合

[0022]在下面各实施例中,数据库的事务是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行
,
要么全部不执行,是一个不可分割的工作单位,事务由事务开始与事务结束之间执行的全部数据库操作组成

事务回滚是指将该事务已完成对数据库的更新操作撤销

[0023]请参阅图1,图1所示出的是本专利技术的一个实施例中一种间隔分区表上全局索引的异步清理方法的示意性流程图,该异步清理方法用于对间隔分区表上中的孤立索引条目进行清理,以提升事务回滚的执行效率,降低事务回滚对其他并发事务的阻塞...

【技术保护点】

【技术特征摘要】
1.
一种间隔分区表上全局索引的异步清理方法,其特征在于,包括:在执行事务回滚时,不删除全局索引中的索引条目;在对所述全局索引中的索引条目进行扫描的过程中,根据预设规则识别出所述全局索引中的孤立索引条目;根据预设清理规则,对所述孤立索引条目进行定期清理
。2.
根据权利要求1所述的异步清理方法,其特征在于,在所述的根据预设规则识别出所述全局索引中的孤立索引条目后,还包括:对所述孤立索引条目进行标记;所述的根据预设清理规则,对所述孤立索引条目进行定期清理,包括:根据所述标记识别出所述全局索引中的孤立索引条目并进行清理
。3.
根据权利要求2所述的异步清理方法,其特征在于,所述的根据预设规则识别出所述全局索引中的孤立索引条目,包括:获取所述全局索引中没有被标记的索引项;获取所述索引项的分区标识符,并根据所述分区标识符查找对应的表分区;若查找失败,则标记所述索引项为孤立索引条目
。4.
根据权利要求1‑3任一项所述的异步清理方法,其特征在于,所述的根据预设清理规则,对所述孤立索引条目进行定期清理,包括:当数据库处于空闲状态时,对所述孤立索引条目进行定期清理
。5.
根据权利要求4所述的异步清理方法,其特征在于,所述的对所述孤立索引条目进行定期清理,包括:通过负责清理工作的进程,根据系...

【专利技术属性】
技术研发人员:岳红波王建华
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1