本发明涉及数据库领域,特别是涉及一种数据表连接方法、装置、电子设备及存储介质。
背景技术:
1、数据库中的join操作是关系型数据库管理系统中的一个核心功能,join操作的基本流程包括:解析查询、优化查询计划、执行join、结果集生成。join操作有优化策略,包括:索引优化、小表优先原则、并行处理等。对于大表和小表的join操作,通常将小表作为join的驱动表,以减少需要检查的行数,再进行并行处理提高效率。然而对于大表和大表的join操作,仍然处理效率较低。
技术实现思路
1、针对上述技术问题,本发明采用的技术方案为:
2、一种数据表连接方法,所述方法包括:
3、获取第一拼接表和第二拼接表,其中,第一拼接表中空值的数量<第二拼接表中空值的数量;
4、获取第一拼接表和第二拼接表的相同字段标记为拼接字段,并获取第一拼接表在拼接字段下的第一拼接字段值列表和第二拼接表在拼接字段下的第二拼接字段值列表,其中,所述第一拼接字段值列表包含若干个第一拼接字段值,所述第二拼接字段值列表包含若干个第二拼接字段值;
5、基于第二拼接字段值的数量、预设误报率,创建第二拼接字段值列表的拼接布隆过滤器;
6、遍历第一拼接字段值列表,使用第一拼接字段值在拼接布隆过滤器中查找,若查找不到,将该第一拼接字段值在第一拼接字段值列表中删除,并获取第二拼接字段值列表和删除后的第一拼接字段值列表的交集,作为指定字段值列表;
7、基于指定字段值列表,将第一拼接表和第二拼接表进行连接,获取指定连接表。
8、一种数据表连接装置,所述装置包括:
9、第一拼接表和第二拼接表获取模块,用于获取第一拼接表和第二拼接表,其中,第一拼接表中空值的数量<第二拼接表中空值的数量;
10、拼接字段获取模块,用于获取第一拼接表和第二拼接表的相同字段标记为拼接字段,并获取第一拼接表在拼接字段下的第一拼接字段值列表和第二拼接表在拼接字段下的第二拼接字段值列表,其中,所述第一拼接字段值列表包含若干个第一拼接字段值,所述第二拼接字段值包含若干个第二拼接字段值。
11、拼接布隆过滤器创建模块,用于基于第二拼接字段值的数量、预设误报率,创建第二拼接字段值列表的拼接布隆过滤器。
12、指定字段值列表获取模块,用于遍历第一拼接字段值列表,使用第一拼接字段值在拼接布隆过滤器中查找,若查找不到,将该第一拼接字段值在第一拼接字段值列表中删除,并获取第二拼接字段值列表和删除后的第一拼接字段值列表的交集,作为指定字段值列表。
13、指定连接表获取模块,用于遍历第一拼接字段值列表,使用第一拼接字段值在拼接布隆过滤器中查找,若查找不到,将该第一拼接字段值在第一拼接字段值列表中删除,并获取第二拼接字段值列表和删除后的第一拼接字段值列表的交集,作为指定字段值列表。
14、根据本发明的另一个方面,提供了一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现前述的方法。
15、根据本发明的又一个方面,提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
16、本发明至少具有以下有益效果:
17、综上,获取第一拼接表和第二拼接表的相同字段标记为拼接字段,并获取第一拼接表在拼接字段下的第一拼接字段值列表和第二拼接表在拼接字段下的第二拼接字段值列表,基于第二拼接字段值的数量、预设误报率,创建第二拼接字段值列表的拼接布隆过滤器,遍历第一拼接字段值列表,使用第一拼接字段值在拼接布隆过滤器中查找,若查找不到,将该第一拼接字段值在第一拼接字段值列表中删除,并获取第二拼接字段值列表和删除后的第一拼接字段值列表的交集,作为指定字段值列表,基于指定字段值列表,将第一拼接表和第二拼接表进行连接,获取指定连接表,本发明通过布隆过滤器的方式将第一拼接表和第二拼接表的相同字段进行筛选再进行拼接,高效的实现大表之间的拼接。
1.一种数据表连接方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据表连接方法,其特征在于,基于第二拼接字段值的数量、预设误报率,创建第二拼接字段值列表的拼接布隆过滤器具体包括:
3.根据权利要求2所述的数据表连接方法,其特征在于,所述预设误报率基于第二拼接表的数据量获取。
4.根据权利要求2所述的数据表连接方法,其特征在于,所述基于插入元素数量和预设误报率,创建第二拼接字段值列表的拼接布隆过滤器,具体包括:
5.根据权利要求1所述的数据表连接方法,其特征在于,遍历第一拼接字段值列表,使用第一拼接字段值在拼接布隆过滤器中查找具体包括:
6.根据权利要求1所述的数据表连接方法,其特征在于,通过如下步骤获取第一拼接表和第二拼接表:
7.根据权利要求6所述的数据表连接方法,其特征在于,所述数据表类型确定方法为:
8.一种数据表连接装置,其特征在于,所述装置包括:
9.一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,其特征在于,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-7中任意一项所述的数据表连接方法。
10.一种电子设备,其特征在于,包括处理器和权利要求9中所述的非瞬时性计算机可读存储介质。