一种跨表查询方法及相关装置制造方法及图纸

技术编号:19858022 阅读:24 留言:0更新日期:2018-12-22 11:49
本申请公开了一种跨表查询方法,包括:确定多个待查询表中的索引列,将每个索引列和对应的ROWID作为索引内容建立在同一个索引中,得到跨表索引;当接收到查询指令时,根据所述查询指令对所述跨表索引进行查询,得到对应的ROWID;根据所述ROWID的数量选择对应的数据获取操作,执行所述数据获取操作得到查询结果。通过对多个表建立同一个跨表索引,当对这些表同时进行查询时,只对跨表索引进行查询即可完成对全部内容的查询操作,避免了对每个表均需要进行一遍索引查询,将多次查询减少为一次查询,降低了查询次数,提高了跨表查询的速度。本申请还公开了一种跨表查询系统、服务器以及计算机可读存储介质,具有以上有益效果。

【技术实现步骤摘要】
一种跨表查询方法及相关装置
本申请涉及计算机
,特别涉及一种跨表查询方法、跨表查询系统、服务器以及计算机可读存储介质。
技术介绍
在数据库中通常通过多种索引结构提高数据库的访问度,一般包括但不限于B树索引、位图索引、反向索引。假设有表t1,其中有列(c1,c2,c3),其中有1万条记录(假设需要100个数据块存储全部记录)。为了提高查询速度,对列c1上创建索引idx1,一条索引记录中包括一个ROWID(数据库中每一行记录的唯一编号)和c1列的值,所以一条索引记录在数据库块中占用的存储空间很小,一个数据库中可以包含大量索引记录,所以存储索引ind1所有记录可能只需要10个数据库块。当执行查询时,首先会在索引记录中查找该条件的记录,当找到后读取其ROWID,然后再根据ROWID到表中读取相应记录,以得到查询结果。当需要对两个表进行查询时,现有技术一般是对两个表分别建立对应的索引,然后根据查询条件在两个索引中均进行查询,将得到查询数据进行聚合得到最后的查询结果。但是当每个索引中的记录数量都达到万级别时,通过两个索引查询同一个条件时,则会分别进行两次单独的索引查询操作,通常会增加查询的时间长度。进一步,当表的数量增多时会严重影响数据的查询时长,降低查询效率。因此,如何提高多个表的查询速度是本领域技术人员关注的重点问题。
技术实现思路
本申请的目的是提供一种跨表查询方法、跨表查询系统、服务器以及计算机可读存储介质,通过对多个表建立同一个跨表索引,当对这些表同时进行查询时,只对跨表索引进行查询即可完成对全部内容的查询操作,避免了对每个表均需要进行一遍索引查询,将多次查询减少为一次查询,降低了查询次数,提高了跨表查询的速度。为解决上述技术问题,本申请提供一种跨表查询方法,包括:确定多个待查询表中的索引列,将每个索引列和对应的ROWID作为索引内容建立在同一个索引中,得到跨表索引;当接收到查询指令时,根据所述查询指令对所述跨表索引进行查询,得到对应的ROWID;根据所述ROWID的数量选择对应的数据获取操作,执行所述数据获取操作得到查询结果。可选的,确定多个待查询表中的索引列,将每个索引列和对应的ROWID作为索引内容建立在同一个索引中,得到跨表索引,包括:根据查询业务确定多个所述待查询表中的索引列;将每个索引列中列值相同的记录和对应的多个ROWID构成跨表索引的索引记录;将每个索引列中剩余的记录和对应的ROEID分别构成跨表索引的索引记录;将所有所述索引记录生成所述跨表索引。可选的,根据所述ROWID的数量选择对应的数据获取操作,执行所述数据获取操作得到查询结果,包括:当所述ROWID的数量为1时,根据所述ROWID在对应的表读取到记录数据,将所述记录数据作为所述查询结果。可选的,根据所述ROWID的数量选择对应的数据获取操作,执行所述数据获取操作得到查询结果,包括:当所有所述ROWID的数量大于1时,根据每个所述ROWID在对应的表读取到记录数据,将所有所述记录数据进行聚合处理,得到所述查询结果。可选的,该方法还包括:当任一所述待查询表中插入新记录时,判断所述跨表索引是否有与所述新纪录的索引列的列值相同的索引记录;若是,则将所述新记录的ROWID更新到所述索引记录中;若否,则将有所述新纪录的索引列的列值和对应的ROWID添加到所述跨表索引中。可选的,该方法还包括:当任一所述待查询表中删除记录时,判断所述跨表索引中待删除记录对应的索引记录的ROWID的数量是否为1;若是,则将所述待删除记录的索引记录删除;若否,则将所述索引记录中所述待删除记录对应的ROWID置空。本申请还提供一种跨表查询系统,包括:跨表索引建立模块,用于确定多个待查询表中的索引列,将每个索引列和对应的ROWID作为索引内容建立在同一个索引中,得到跨表索引;ROWID查询模块,用于当接收到查询指令时,根据所述查询指令对所述跨表索引进行查询,得到对应的ROWID;查询结果获取模块,用于根据所述ROWID的数量选择对应的数据获取操作,执行所述数据获取操作得到查询结果。可选的,所述跨表索引建立模块,包括:索引列确定单元,用于根据查询业务确定多个所述待查询表中的索引列;第一索引记录获取单元,用于将每个索引列中列值相同的记录和对应的多个ROWID构成跨表索引的索引记录;第二索引记录获取单元,用于将每个索引列中剩余的记录和对应的ROEID分别构成跨表索引的索引记录;跨表索引获取单元,用于将所有所述索引记录生成所述跨表索引。本申请还提供一种服务器,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如以上实施例所述的跨表查询方法的步骤。本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的跨表查询方法的步骤。本申请所提供的一种跨表查询方法,包括:确定多个待查询表中的索引列,将每个索引列和对应的ROWID作为索引内容建立在同一个索引中,得到跨表索引;当接收到查询指令时,根据所述查询指令对所述跨表索引进行查询,得到对应的ROWID;根据所述ROWID的数量选择对应的数据获取操作,执行所述数据获取操作得到查询结果。通过对多个表建立同一个跨表索引,当对这些表同时进行查询时,只对跨表索引进行查询即可完成对全部内容的查询操作,避免了对每个表均需要进行一遍索引查询,将多次查询减少为一次查询,降低了查询次数,提高了跨表查询的速度。本申请还提供一种跨表查询系统、服务器以及计算机可读存储介质,具有以上有益效果,在此不作赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种跨表查询方法的流程图;图2为本申请实施例所提供的跨表查询方法的跨表索引获取方法的流程图;图3为本申请实施例所提供的跨表查询方法的新记录插入方法的流程图;图4为本申请实施例所提供的跨表查询方法的索引记录删除方法的流程图;图5为本申请实施例所提供的一种跨表查询系统的结构示意图。具体实施方式本申请的核心是提供一种跨表查询方法、跨表查询系统、服务器以及计算机可读存储介质,通过对多个表建立同一个跨表索引,当对这些表同时进行查询时,只对跨表索引进行查询即可完成对全部内容的查询操作,避免了对每个表均需要进行一遍索引查询,将多次查询减少为一次查询,降低了查询次数,提高了跨表查询的速度。为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。当需要对两个表进行查询时,现有技术一般是对两个表分别建立对应的索引,然后根据查询条件在两个索引中均进行查询,将得到查询数据进行聚合得到最后的查询结果。但是当每个索引中的记录数量都达到万级别时,通过两个索引查询本文档来自技高网...

【技术保护点】
1.一种跨表查询方法,其特征在于,包括:确定多个待查询表中的索引列,将每个索引列和对应的ROWID作为索引内容建立在同一个索引中,得到跨表索引;当接收到查询指令时,根据所述查询指令对所述跨表索引进行查询,得到对应的ROWID;根据所述ROWID的数量选择对应的数据获取操作,执行所述数据获取操作得到查询结果。

【技术特征摘要】
1.一种跨表查询方法,其特征在于,包括:确定多个待查询表中的索引列,将每个索引列和对应的ROWID作为索引内容建立在同一个索引中,得到跨表索引;当接收到查询指令时,根据所述查询指令对所述跨表索引进行查询,得到对应的ROWID;根据所述ROWID的数量选择对应的数据获取操作,执行所述数据获取操作得到查询结果。2.根据权利要求1所述的跨表查询方法,其特征在于,确定多个待查询表中的索引列,将每个索引列和对应的ROWID作为索引内容建立在同一个索引中,得到跨表索引,包括:根据查询业务确定多个所述待查询表中的索引列;将每个索引列中列值相同的记录和对应的多个ROWID构成跨表索引的索引记录;将每个索引列中剩余的记录和对应的ROEID分别构成跨表索引的索引记录;将所有所述索引记录生成所述跨表索引。3.根据权利要求1所述的跨表查询方法,其特征在于,根据所述ROWID的数量选择对应的数据获取操作,执行所述数据获取操作得到查询结果,包括:当所述ROWID的数量为1时,根据所述ROWID在对应的表读取到记录数据,将所述记录数据作为所述查询结果。4.根据权利要求1所述的跨表查询方法,其特征在于,根据所述ROWID的数量选择对应的数据获取操作,执行所述数据获取操作得到查询结果,包括:当所有所述ROWID的数量大于1时,根据每个所述ROWID在对应的表读取到记录数据,将所有所述记录数据进行聚合处理,得到所述查询结果。5.根据权利要求1所述的跨表查询方法,其特征在于,还包括:当任一所述待查询表中插入新记录时,判断所述跨表索引是否有与所述新纪录的索引列的列值相同的索引记录;若是,则将所述新记录的ROWID更新到所述索引记录中;...

【专利技术属性】
技术研发人员:马国良
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1