这样有几十亿行
id | type | groupId
---+------+--------
1 | a |
1 | b |
2 | a |
2 | c |
1 | a |
2 | d |
2 | a |
1 | e |
5 | a |
1 | f |
4 | a |
1 | b |
4 | a |
1 | t |
8 | a |
3 | c |
6 | a |
我需要为这些数据添加groupId,如果id相同或类型相同,那么它是一个相同的groupId,结果如下:
id | type | group
---+------+--------
1 | a | 1
1 | b | 1
2 | a | 1
2 | c | 1
1 | a | 1
2 | d | 1
2 | a | 1
1 | e | 1
5 | a | 1
1 | f | 1
4 | a | 1
1 | b | 1
4 | a | 1
7 | t | 2
8 | g | 3
3 | c | 1
6 | a | 1
我尝试使用循环来执行此操作,但效率非常低,需要服务器周才能完成所有这些。
答案 0 :(得分:-1)
这是一个典型的例子,您可以使用 Quick-Union算法。
计算限制
阅读有关此算法的更多信息: