1 .一种数据表连接方法,其特征在于,应用于电子设备,所述电子设备包括优化器和执
行器,所述方法包括:
通过所述优化器确定待执行的SQL查询指令是否包括通过or连接的两个子条件,且确
定所述两个子条件是否均为第一数据表和第二数据表的等值条件,所述第一数据表和所述
第二数据表为待连接的两个数据表;
在确定所述SQL查询指令为包括通过or连接的两个子条件,且确定所述两个子条件均
为所述第一数据表和所述第二数据表的等值条件的情况下,通过所述优化器向所述执行器
指示所述第一数据表和所述第二数据表中的一个为内表,另一个为外表;
通过所述执行器对所述内表创建对应的哈希表,所述哈希表包括所述内表在所述两个
子条件内的查询列中数据的哈希值;
根据所述哈希表,通过所述执行器对所述外表的查询列执行哈希连接。
2 .根据权利要求1所述的方法,其特征在于,所述通过所述执行器对所述内表创建对应
的哈希表,包括:
通过所述执行器遍历所述内表的查询列对应各行的数据;
针对任一所述行的数据,计算所述行的数据的哈希值,并根据所述行的数据的哈希值,
将所述行的数据映射存储在所述行的数据的哈希值对应的哈希桶中;
在遍历完所述内表的查询列对应各行的数据后,得到所述内表对应的哈希表。
3 .根据权利要求2所述的方法,其特征在于,所述两个子条件中所述内表的查询列为至
少两个查询列,所述根据所述行的数据的哈希值,将所述行的数据映射存储在所述行的数
据的哈希值对应的哈希桶中,包括:
根据所述行的各数据各自的哈希值进行相同或相异的比较,得到第一比较结果;
在所述第一比较结果指示所述行的各数据各自的哈希值为全部相同的情况下,将所述
行的各数据在该哈希值对应的哈希桶中映射存储一份;
或者,
在所述第一比较结果指示所述行的各数据各自的哈希值为非全部相同的情况下,将所
述行的各数据分别在所述行的各数据各自的哈希值对应的哈希桶中映射存储一份。
4 .根据权利要求1‑3任一项所述的方法,其特征在于,所述根据所述哈希表,通过所述
执行器对所述外表的查询列执行哈希连接,包括:
通过所述执行器遍历所述外表的查询列对应各行的数据;
针对任一所述行的数据,计算所述行的数据的哈希值,并根据所述行的数据的哈希值,
在所述哈希表中查询与所述行的数据的哈希值相同的哈希值;
在查询到与所述行的数据的哈希值相同的哈希值的情况下,根据所述两个子条件进行
条件比对,在符合所述两个子条件中任一子条件的情况下,对所述行建立连接;
在遍历完所述外表的查询列对应各行的数据后,完成所述第一数据表和所述第二数据
表的哈希连接。
5 .根据权利要求4所述的方法,其特征在于,所述两个子条件中所述外表的查询列为至
少两个查询列,所述根据所述行的数据的哈希值,在所述哈希表中查询与所述行的数据的
哈希值相同的哈希值,包括:
根据所述行的各数据各自的哈希值进行相同或相异的比较,得到第二比较结果;
权 利 要 求 书
1/2 页
2
评论