任何人都可以帮我优化这个查询:
SELECT DISTINCT
A.X1,
A.X2
FROM TABLEAA A
JOIN TABLEBB B ON A.Y = B.Y AND B.Z1='SELECTED1' AND B.W NOT LIKE 'SLECTED3'
JOIN TABLECC C ON A.Y = C.Y AND C.Z2='SELECTED2'
AND A.W NOT LIKE 'SLECTED3'
鉴于
TABLEAA:100万条目 TABLEBB:1700万条目 TABLECC:120万条目
它可以工作,但需要大约8到10秒。
有没有其他方法可以写这个?
编辑:TableBB上的主要索引是B.Z1和B.Y的组合。 TableCC上的主要指数是C.Z2和C.Y的组合。 TableAA的主要指数是A.Y
答案 0 :(得分:0)
我希望这更好。
SELECT DISTINCT A.X1, A.X2
FROM TABLEAA AS A
INNER JOIN(TABLEBB AS B)
ON(A.Y = B.Y)
INNER JOIN(TABLECC AS C)
ON(A.Y = C.Y)
WHERE B.Z1 = 'SELECTED1' AND
B.W NOT LIKE '%SLECTED3%' AND
C.Z2='SELECTED2' AND
A.W NOT LIKE '%SLECTED3%'