首先,我对SQL很新。
我有一张桌子,每天约有500k行 - Table1
。
我正在尝试为Table1
做两个左连接,其中一个表有10k行,其他表有200k行。
查询运行大约15分钟。有什么办法可以减少连接的时间吗?
我们是否有类似于加入索引的内容?
我找到了关于PRIMARY KEY
和FOREIGN KEY
的主题,但这样做会减少加入所用的时间吗?
Kidnly帮我解决了这个问题。
表1:
sDate No Val Val2
01-Jan 1 A Z
01-Jan 1 B A
01-Jan 2 C R
01-Jan 2 D DF
01-Jan 2 E F
01-Jan 3 F DF
02-Jan 3 G T
02-Jan 3 H H
02-Jan 4 I H
02-Jan 4 J G
02-Jan 5 K B
02-Jan 5 L V
02-Jan 1 A Z
03-Jan 1 B A
03-Jan 2 C R
03-Jan 2 D DF
03-Jan 2 E F
03-Jan 3 F DF
04-Jan 3 G T
04-Jan 3 H H
04-Jan 4 I H
04-Jan 4 J G
04-Jan 5 K B
04-Jan 5 L V
左连接表1:
No Lab1
1 P
2 Q
3 A
4 R
5 T
左连接表2:
zDate No Tab1
01-Jan 1 P
01-Jan 2 Q
01-Jan 3 A
01-Jan 4 R
01-Jan 5 T
02-Jan 1 P
02-Jan 2 Q
02-Jan 3 A
02-Jan 4 R
02-Jan 5 T
03-Jan 1 P
03-Jan 2 Q
03-Jan 3 A
03-Jan 4 R
03-Jan 5 T
04-Jan 1 P
04-Jan 2 Q
04-Jan 3 A
04-Jan 4 R
04-Jan 5 T
查询:
SELECT [sDate]
,[No]
,[Val1]
,[Val2]
,[Lab1]
,[Tab1]
FROM [Table1]
LEFT JOIN [Left Join - Table1] ON
[Table1].[No] = [Left Join - Table1].[No]
LEFT JOIN [Left Join - Table2] ON
[Table1].[No] = [Left Join - Table2].[No]
提前致谢。