我有一个包含21列(所有整数)id,c1,c2 ... c20的表,以及为列中具有相同值的行获取id的内容...
因此,如果第1行c1 =第10行c1行,第1行将匹配第10行,第1行c2 =第10行第2行,依此类推。
这是查询的样子:
select r1.id, r2.id
from tbl r1, tbl r2
where 1=1 and r1.c1=r2.c1 and r1.c2=r2.c2 and
..... r1.c20=r2.c20 and not r1.id=r2.id
我目前正在使用自联接,但这太慢了(10000行为20秒)。 我在列上设置了索引(?) 我有大约100万行 感谢
答案 0 :(得分:1)
您是否在所有20列上尝试过单个索引?
答案 1 :(得分:1)
您可能想要创建一个额外的列,您可以在其中存储行中所有值的哈希值。然后只需索引该列并过滤与您要搜索的20个值的哈希值匹配的行。